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

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 [email protected]:/root/test.log /Users/admin/root/test.log

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

scp -P 6666 [email protected]:/root /Users/admin/root

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

2.1.2 使用.pem证书连接VPS

下载单个文件的命令为

scp -i /Users/admin/example.pem [email protected]:/root/test.log /Users/admin/root/test.log

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

下载整个目录的命令为:

scp -i /Users/admin/example.pem [email protected]:/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 -r -P 6666 /Users/admin/root/test.log [email protected]:/root/test.log

同理,也能上传整个目录

scp -r -P 6666 /Users/admin/root [email protected]:/root

2.1.2 使用.pem证书连接VPS

上传单个文件的命令为

scp -r -i /Users/admin/example.pem /Users/admin/root/test.log [email protected]:/root/test.log

上传整个目录的命令为:

scp -r -i /Users/admin/example.pem /Users/admin/root [email protected]:/root

3 可能遇到的问题

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

本文内容部分借鉴自http://celerysoft.github.io/2016-07-07.html

猜你喜欢

转载自my.oschina.net/u/3797187/blog/1794993