使用SCP命令在远程VPS和本地之间进行文件传输

2016-07-07

假设你的VPS的功能很单纯,没有Nginx或者Web Server,那么要如何在VPS和本地之间、或者两台VPS之间进行文件传输呢?答案就是scp命令。

1 什么是scp

scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证。scp在需要进行验证时会要求你输入密码或口令。

2 实际操作

2.1 下载VPS的文件(目录)到本地

假设需要将VPS上的一个文件下载到本地,文件路径是/root/test.log,VPS的IP地址是12.34.56.78,VPS的账户名是root,SSH端口是6666,我们将这个文件下载到本地的/Users/admin/root/test.log,我们再分两种情况讨论。

2.1.1 使用账号密码连接VPS

那么我们需要执行的scp命令是

scp -P 6666 root@12.34.56.78:/root/test.log /Users/admin/root/test.log

scp支持对整个目录进行操作,例如将上述root目录下载到本地

scp -r -P 6666 root@12.34.56.78:/root /Users/admin/root

执行scp命令后需要输入VPS上对应账户的密码

2.1.2 使用.pem证书连接VPS

下载单个文件的命令为

scp -i /Users/admin/example.pem root@12.34.56.78:/root/test.log /Users/admin/root/test.log

.pem证书的地址记得改成你自己的。

下载整个目录的命令为:

scp -r -i /Users/admin/example.pem root@12.34.56.78:/root /Users/admin/root

2.2 上传本地的文件(目录)到VPS

假设需要将本地的一个文件上传到VPS,本地文件的路径是/Users/admin/root/test.log,VPS的IP地址是12.34.56.78,VPS的账户名是root,SSH端口是6666,我们将这个文件上传到VPS的/root/test.log,也分两种情况讨论

2.2.1 使用账号密码连接VPS

那么我们需要执行的scp命令是

scp -P 6666 /Users/admin/root/test.log root@12.34.56.78:/root/test.log

同理,也能上传整个目录

scp -r -P 6666 /Users/admin/root root@12.34.56.78:/root

2.1.2 使用.pem证书连接VPS

上传单个文件的命令为

scp -i /Users/admin/example.pem /Users/admin/root/test.log root@12.34.56.78:/root/test.log

上传整个目录的命令为:

scp -r -i /Users/admin/example.pem /Users/admin/root root@12.34.56.78:/root

3 可能遇到的问题

  • 本地没有生成SSH Key导致连接认证失败

(待补充)

noBorder

除非另有声明,本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。

文章评论



章节列表