博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH基础
阅读量:5982 次
发布时间:2019-06-20

本文共 2524 字,大约阅读时间需要 8 分钟。

SSH基础

Jan.08, 2019

1. 简介

什么是SSH?

"Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境." -

SSH,字面意思是安全的shell,但SSH并不是一种shell,只是创建了一个通道在远程服务器上运行 shell。SSH是客户端/服务器的体系结构。一般来说,它具有下面几种特点:

  • 身份验证
  • 加密性
  • 完整性

SSH实际上并不是一种完全安全的解决方案,但是目前为止似乎也还没有完全安全的解决方案。

SSH的用途

SSH可以有很多用途,一般我们经常用来:

  • 远程登录
  • 文件传输
  • X11连接
  • 端口转发

"SSH的经典用途是登录到远程电脑中执行命令。除此之外,SSH也支持隧道协议、端口映射和X11连接。借助SFTP或SCP协议还可以传输文件。" -

常见的术语

使用SSH时可能遇到一些名词,为避免混淆,简单介绍一下:

  • : 通用的术语,泛指SSH协议或者相关软件。
  • SSH-1: SSH协议版本1。
  • SSH-2: SSH协议版本2。
  • SSH1: SSH设计者Tatu Ylönen最初实现的软件,基于SHH-1协议。(Tatu Ylönen后面成立了SSH Communications Security Corp.)
  • SSH2: SSH Communications Security Corp.的SSH产品,基于SSH-2协议。
  • : SSH协议的开源实现版本,是OpenBSD项目的产品。 1、2 协议均有实现。OpenSSH是最流行的SSH实现,是大量操作系统的默认组件。
  • : SSH文件传输协议。
  • : 安全复制,基于SSH协议进行的文件传输。
  • ssh(全部小写): 远程登录的命令, 类似的还有sftp, scp, sshfs等。

2. SSH客户端基本用法

SSH远程登录

SSH远程登录,通常使用客户端程序进行登录,一般只需要填写账户,密码和端口等。SSH客户端程序有很多,比如MobaXterm, PuTTY, Xshell等。常用SSH客户端的比较可以参考:

除了客户端程序,Linux和Unix系统等操作系统是默认安装OpenSSH程序的,可以使用命令行直接登录(实际上,通过配置文件,使用命令行会更便捷)。

# 命令行登录$ ssh user@host  # 登录主机# 例子: 用户tux通过ssh登录111.111.111.1服务器,端口为1111$ ssh tux@111.111.111.1 -p 1111# 常见的参数(参数顺序不影响)-p  # 端口号,如果端口号为默认端口(22),则不用添加,(p为小写)-i  # 密钥文件(如果登录方式为密钥登录)-X  # 使用X11 -l  # 用户名,可以用@方式省略,现在很少用

基于SSH的文件传输

基于SSH协议的文件传输主要有两种: SFTPSCP

SFTP

"SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FTP或字母缩写:SFTP)是一数据流连线,提供文件访问、传输和管理功能的网上传输协议。" -

SCP

"安全复制(英语:Secure copy,缩写SCP)是指在本地主机与远程主机或者两台远程主机之间基于Secure Shell(SSH)协议安全地传输电脑文件。[1]“SCP”通常指安全复制协议或者程序本身。" -

很多SSH客户端程序远程登录时默认建立了SFTP连接,不需要另外连接。SCP文件传输通常需要其他的客户端,连接方式与SSH基本一致: 账户,密码和端口等。

SFTP与SCP的命令行文件传输方法有些差别,SCP功能比较单一,基本只能用来文件传输,而SFTP的功能较多。

SFTP命令行用法

# 最常见的用法$ sftp user@host -P xxxx  # 建立SFTP连接# 常见参数(有文件路径时,这些参数需要放在文件路径之前)-P  # 端口号, 如果端口号为默认端口(22),则不用添加,(P为大写)-i  # 密钥文件(如果登录方式为密钥登录)# 直接利用sftp下载文件(这种用法目前用的比较少了)$ sftp user@host:/remote/path/file  # 从远程服务器复制文件到本地# 建立sftp连接后,最常用的两个命令get  # 从远程服务器文件下载至本地put  # 把本地文件上传至远程服务器# 具体用法,文件夹路径前加上: -rget /remote/path/sourcefile /local/targetpath/put /local/path/sourcefile /remote/targetpath/# 建立sftp连接后,还有很多其他命令可以使用,类似shellbye  # 结束连接, exit也可以ls, cd, pwd, mkdir, rmdir, delete等 # 针对远程服务器的操作lls,lcd等  # 针对本地的操作,功能与ls, cd同

SCP命令行用法

$ scp /local/path/sourcefile user@host:/remote/targetpath/  # 复制文件到主机$ scp user@host:/remote/path/sourcefile /local/targetpath/  # 从主机复制文件# 常见参数(注意,这些参数需要放在文件路径之前)-P  # 端口号, 如果端口号为默认端口(22),则不用添加,(P为大写)-i  # 密钥文件(如果登录方式为密钥登录)-r  # 文件夹
SFTP与SCP比较
协议 速度 安全 功能 大文件传输 断点续传 其他
SFTP 较安全 较多 支持 支持
SCP 较安全 单一 支持 不支持

参考资料
  • 《SSH 权威指南》

转载于:https://www.cnblogs.com/laocaibcc/p/10241137.html

你可能感兴趣的文章
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
mybatis update返回值的意义
查看>>
expdp 详解及实例
查看>>
通过IP判断登录地址
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
Beta冲刺——day6
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
关于在VS2005中编写DLL遇到 C4251 警告的解决办法
查看>>
提高信息安全意识对网络勒索病毒说不
查看>>
我的友情链接
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>
基本安装lnmp环境
查看>>
logstash消费阿里云kafka消息
查看>>
Oracle——条件控制语句
查看>>
day-6 and day-7:面向对象
查看>>
CSU Double Shortest Paths 湖南省第十届省赛
查看>>