我想在scp
具有基于密钥的身份验证的两个远程主机之间复制文件。
scp -i /home/user/.ssh/id_rsa user@host1:/tmp/myfile user@host2:/tmp/
问题是,host2
即使我已将公钥复制到两台服务器,仍然提示我输入密码。有办法让这项工作发挥作用吗?
答案1
你从host1
或开始host2
?在这种情况下,存在冗余host_
,而且如果两个用户相同,并且起始主机相同,则user@
也是冗余。
综上所述,假设你从host1开始
- 将内容复制
id_rsa.pub
到authorized_keys
主机2上 获取远程文件(远程到本地)
scp -i /home/user/.ssh/id_rsa host2:/tmp/somedistantfile /tmp
发送(本地到远程)
scp -i /home/user/.ssh/id_rsa /tmp/somelocalfile host2:/tmp
答案2
您可以使用以下命令在远程计算机之间直接复制:
ssh -A -t -v user-1@source-host scp /path/to/source/file user-2@dest-host:/path/to/dest/file
这不会使用您的本地计算机,而是直接将文件复制到其中,source-host
这dest-host
对于大文件可能有用。
您应该首先在上面的命令中执行ssh-add .ssh/my-private-key
或使用param 。-i .ssh/my-private-key