使用密钥身份验证在 2 个远程主机之间进行 scp

使用密钥身份验证在 2 个远程主机之间进行 scp

我想在scp具有基于密钥的身份验证的两个远程主机之间复制文件。

scp -i /home/user/.ssh/id_rsa user@host1:/tmp/myfile user@host2:/tmp/

问题是,host2即使我已将公钥复制到两台服务器,仍然提示我输入密码。有办法让这项工作发挥作用吗?

答案1

你从host1或开始host2?在这种情况下,存在冗余host_,而且如果两个用户相同,并且起始主机相同,则user@也是冗余。

综上所述,假设你从host1开始

  • 将内容复制id_rsa.pubauthorized_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-hostdest-host对于大文件可能有用。

您应该首先在上面的命令中执行ssh-add .ssh/my-private-key或使用param 。-i .ssh/my-private-key

相关内容