您的位置:

SSH传输文件详解

一、文件传输协议介绍

文件传输协议(File Transfer Protocol,简称FTP),是一个用于在网络上进行文件传输的标准协议。但因为其传输的数据不加密,存在安全风险。为了提升传输的安全性,SSH提供了一种基于加密的传输方式:SCP。

SCP(Secure Copy)是基于SSH协议的加密文件传输工具,可以传输单个文件或整个目录。SCP支持加密传输、压缩传输和限速传输等功能。由于SCP使用了SSH,数据只能在加密后传输,避免了FTP明文传输数据的安全问题。

二、SCP传输文件操作

1、SCP上传文件scp [本地文件] [用户名@远程主机IP:远程文件目录]
例如:上传本地文件test.txt至远程主机IP为10.0.0.1、用户名为root且上传至远程主机/root/目录下,命令为:

scp ~/test.txt root@10.0.0.1:/root/
2、SCP下载文件scp [用户名@远程主机IP:远程文件目录] [本地目录]
例如:将远程主机IP为10.0.0.1、用户名为root、远程目录为/root/下的文件test.txt下载至本地目录/tmp/下,命令为:
scp root@10.0.0.1:/root/test.txt /tmp/
3、SCP上传目录(加-r参数)scp -r [本地目录] [用户名@远程主机IP:远程目录]
例如:上传本地目录myfiles至远程主机IP为10.0.0.1、用户名为root且上传至远程主机/root/目录下,命令为:
scp -r ~/myfiles root@10.0.0.1:/root/
4、SCP下载目录(加-r参数)scp -r [用户名@远程主机IP:远程目录] [本地目录]
例如:将远程主机IP为10.0.0.1、用户名为root、远程目录为/root/下的目录myfiles下载至本地目录/tmp/下,命令为:
scp -r root@10.0.0.1:/root/myfiles /tmp/

三、SCP传输文件的高级应用

1、SCP加速传输
SCP可以使用加速程序pv来限制传输速度,这样可以在不影响网络其他活动的情况下加快SCP的传输速度。
例如:上传文件时限制传输速度为2MB/s,命令为:

scp -r ~/myfiles root@10.0.0.1:/root/ | pv -L 2m
2、SCP传输压缩文件
SCP的传输速度在大文件传输时比较慢,为此我们可以在上传前将文件进行压缩,这样可以减小传输的文件大小,提高传输速度。
例如:将本地文件test.tar.gz上传至远程主机时,命令为:
scp ~/test.tar.gz root@10.0.0.1:/root/
3、SCP传输加密文件
SCP传输文件时,可以选择使用加密方式提高数据安全性。
例如:将本地文件test.txt上传至远程主机时,使用AES-256加密文件,命令为:
scp -c aes256 ~/test.txt root@10.0.0.1:/root/

四、SCP常用错误分析

1、连接超时
建立连接时,如果主机不能连通,会提示“Connection refused”或“Operation timed out”。
2、输入密码错误
在连接主机时输入密码错误,会提示“Permission denied”错误信息。
3、传输文件失败
SCP传输文件时失败,可能是因为目标主机地址错误,目标文件路径不存在等原因。