SSH、SCP和SFTP都是SSH软件包的组成部分。git
SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为创建在应用层基础上的安全协议。SSH 是目前普遍采用的安全登陆协议,专为远程登陆会话和其余网络服务提供安全性的协议,替代之前不安全的Telnet协议。利用 SSH 协议能够有效防止远程管理过程当中的信息泄露问题。web
SSH包括二个部分,服务端的SSHD(Secure Shell Daemon)和SSH客户端。咱们一般所说的用SSH登陆到某某主机,指的是用SSH客户端远程登陆到某台主机(该主机运行了SSHD服务端程序)。shell
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其余操做平台,目前几乎全部UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其余系统平台,均可运行SSH。windows
再说一说SCP和SFTP。安全
SCP是Secure Copy的简称,是用来与远程主机之间进行数据传输的协议,至关于通过加密的Copy命令。SCP数据传输使用 ssh协议,而且和ssh 使用相同的认证方式,提供相同的安全保证 。 根据实际须要,scp进行验证时会要求你输入密码或口令。服务器
SFTP=SSH File Transfer Protocol ,有时也被称做 Secure File Transfer Protocol 。SFTP是用SSH封装过的FTP协议,至关于通过加密的FTP协议,功能与FTP同样,只是传输数据通过加密。网络
SFTP也有二个部分,服务端的SFTP-Server及SFTP Client。一般所说的用SFTP登陆到某台主机,指的是用SFTP客户端登陆到某台主机(该主机运行了SFTP-Server服务端程序)。ssh
SCP和SFTP异同:ide
无论SCP仍是SFTP,都是SSH的功能之一,也都是使用SSH协议来传输文件的。工具
不仅是登陆时的用户信息,相互传输的文件内容也是通过SSH加密的,因此说SCP和SFTP实现了安全的文件传输。
SCP和CP命令类似,SFTP和FTP的使用方法也相似。SCP和SFTP的共同之处在于「使用SSH将文件加密才传输的」
使用「WinSCP」或者「FileZilla」之类的客户端,还能够和Windows之间进行文件传输。
SCP和SFTP的不一样之处,首先就是以前提到的,SCP使用「SCP命令」,SFTP则相似「FTP处理文件」的使用方式。
它们的不一样之处还不止如此,还有「SCP比较简单,是轻量级的,SFTP的功能则比较多」。
虽然还有不少不一样之处,但两者的最大不一样之处在于「SFTP在文件传输过程当中中断的话,链接后还能够继续传输,但SCP不行」。
因为各类缘由致使的文件传输中断是常常讨论的话题,因此这个区别(SFTP支持断点续传,SCP则不支持)被认为是最大的区别。
【知识扩展】
FTP:文件传输协议( File Transfer Protocol的缩写 )是用于在网络上进行文件传输的一套标准协议。它属于网络协议组的应用层。
FTP端口知识:
FTP服务器和客户端要进行文件传输,就须要经过端口来进行。FTP协议须要的端口通常包括两种:
控制链路---TCP端口21。控制器端口,用于发送指令给服务器以及等待服务器响应。全部你发往FTP服务器的命令和服务器反馈 的指令都是经过服务器上的21端口传送的。
数据链路---TCP端口20。数据传输端口,用来创建数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。数据链路主要是用来传送数据的,好比客户端 上传、下载内容,以及列目录显示的内容等。
FTP、Telnet和POP,其本质上都是不安全的;由于它们在网络上用明文传送数据、用户账号和用户口令。
常见的SSH客户端:
图形化客户端:
WinSCP,是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持FTP、SCP、webdav协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
Xftp,是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 之后,MS windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。
FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具有全部的FTP软件功能。支持FTP,SFTP(SSH File Transfer Protocol), FTPS(FTP over SSL/TLS)等多种协议。
终端工具类:
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口链接软件。PuTTY是一款开放源代码软件,使用MIT licence受权。
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, SFTP以及Microsoft Windows 平台的TELNET 协议。