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导致连接认证失败