笔记:SSH、SCP和SFTP区别

SSH、SCP和SFTP区别

SSH 是 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前广泛采用的安全登录协议,专为远程登录会话和其他网络服务提供安全性的协议,替代以前不安全的Telnet协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SSH包括二个部分,服务端的SSHD(Secure Shell Daemon)和SSH客户端。我们通常所说的用SSH登录到某某主机,指的是用SSH客户端远程登录到某台主机(该主机运行了SSHD服务端程序)。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台,目前几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他系统平台,都可运行SSH。

SCP和SFTP介绍

  • FTP 基于TCP来传输文件,明文传输用户信息和数据。
  • SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。
  • SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。
    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服务端程序)。

SCP和SFTP异同

  • FTP 基于TCP来传输文件,明文传输用户信息和数据。
  • SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。
  • SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。

FTP

是TCP/IP网络上两台计算机传送文件的协议,
FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,
它属于网络协议组的应用层。
FTP客户机可以给服务器发出命令来下载文件,上载文件, 创建或改变服务器上的目录。
相比于HTTP,FTP协议要复杂得多。
复杂的原因,是因为FTP协议要用到两个TCP连接,
一个是命令链路,用来在FTP客户端与服务器之间传递命令;
另一个是数据链路,用来上传或下载数据。 FTP是基于TCP协议的,
因此iptables防火墙设置中只需要放开指定端口(21 + PASV端口范围)的TCP协议即可。

SCP

SCP就是Secure copy,是用来进行远程文件复制的,
并且整个复制过程是加密的。数据传输使用ssh,
并且和使用和ssh相同的认证方式,提供相同的安全保证。

SCTP

安全文件传送协议。可以为传输文件提供一种安全的加密方法。
SFTP与 FTP有着几乎一样的语法和功能。
SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。
在SSH软件包中,已经包含了一个叫作SFTP(Secure File
Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,
它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作, 所以从某种意义上来说,SFTP并不像一个服务器程序, 而更像是一个客户端程序。
SFTP同样是使用加密传输认证信息和传输的数据, 所以,使用SFTP是非常安全的。
但是,由于这种传输方式使用了加密/解密技术, 所以传输效率比普通的FTP要低得多, 如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

相同点:

  1. 不管SCP还是SFTP,都是SSH的功能之一,也都是使用SSH协议来传输文件的。不只是登录时的用户信息,相互传输的文件内容也是经过SSH加密的,所以说SCP和SFTP实现了安全的文件传输。
  2. SCP和CP命令相似,SFTP和FTP的使用方法也类似。SCP和SFTP的共同之处在于「使用SSH将文件加密才传输的」
  3. 使用「WinSCP」或者「FileZilla」之类的客户端,还可以和Windows之间进行文件传输

不同点:

  1. SCP和SFTP的不同之处,首先就是之前提到的,SCP使用「SCP命令」,SFTP则类似「FTP处理文件」的使用方式。
  2. 它们的不同之处还不止如此,还有「SCP比较简单,是轻量级的,SFTP的功能则比较多」
  3. 虽然还有很多不同之处,但二者的最大不同之处在于「SFTP在文件传输过程中中断的话,连接后还可以继续传输,但SCP不行」。
    4.由于各种原因导致的文件传输中断是经常讨论的话题,所以这个区别(SFTP支持断点续传,SCP则不支持)被认为是最大的区别。

知识扩展

FTP:文件传输协议( File Transfer Protocol的缩写 )是用于在网络上进行文件传输的一套标准协议。它属于网络协议组的应用层

FTP端口知识:

FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

  1. 控制链路—TCP端口21。控制器端口,用于发送指令给服务器以及等待服务器响应。所有你发往FTP服务器的命令和服务器反馈 的指令都是通过服务器上的21端口传送的。
  2. 数据链路—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 协议。

SSH安装和使用

1. 安装ssh服务器

sudo apt-get install openssh-server

2. 远程登陆

ssh 用户名@IP
使用ssh访问,如访问出现错误。可查看是否有该文件 ~/.ssh/known_ssh 尝试删除该文件解决。

3. 使用SSH连接服务器

SSH 告知用户,这个主机不能识别,这时键入"yes",SSH 就会将相关信息,写入" ~/.ssh/know_hosts" 中,再次访问,就不会有这些信息了。然后输入完口令,就可以登录到主机了
在这里插入图片描述

SCP-远程拷贝文件scp -r 的常用方法

  1. 使用该命令的前提条件要求目标主机已经成功安装openssh-server
    如没有安装使用 sudo apt-get install openssh-server 来安装
  2. 使用格式:
    scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径 /保存到本机的绝对/相对路径

举例:

scp -r itcast@192.168.2.100:/home/itcast/QQ_dir/ ./mytest/lisi

在后续会提示输入“yes”此时,只能输“yes”而不能简单输入“Y”
拷贝单个文件可以不加 -r参数,拷贝目录必须要加。

本地文件复制到远程:

scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile

在这里插入图片描述

远程目录复制到本地:

scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName

在这里插入图片描述
注意两点:

  1. 如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
  1. 使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
      如:
scp /var/log/sql-slow-queries.log root@192.168.1.50:/root

把本地 /var/log/sql-slow-queries.log 这个文件copy到1.50上面/root 目录下面

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值