繁体   English   中英

SSH:使用公共密钥身份验证时,无需密码即可复制文件。

[英]SSH : Copy files without password when using public key authentication.

我们有2台Debian服务器,一台用于测试,一台用于实时。 我有一些脚本应该执行以将数据从实时传输到测试。 对于这两个服务器,我们都使用PublicKeyAuthentication,将id_rsa.pub的内容添加到测试服务器上的authorized_keys中。

即使这样做了,每次我启动从一台服务器到另一台服务器的传输时,都会要求我输入密码。

我还尝试调用ssh-copy-id,但这没有帮助,我得到的只是authorized_keys中的重复条目。

最后,当我尝试sshpass时,收到以下消息,并且我无法输入密码作为其唯一的消息。

sshpass -v -p 'PASS' ssh root@our_server
SSHPASS searching for password prompt using match "assword"
SSHPASS read: Enter passphrase for key '/root/.ssh/id_rsa': 

有任何想法吗? 谢谢。

从sshpass的输出中,它表明正在询问密钥的密码,而不是服务器的密码:

输入密钥'/root/.ssh/id_rsa'的密码

用密码保护SSH密钥是一种很好的做法,但是您不能完全以这种方式自动执行操作,正如您所发现的那样。 根据您的情况,您可以执行以下任一操作:

  • 使用SSH代理。 这是一个守护程序,将询问您一次密码,并保留私钥直到您将其删除为止。 这仍然具有您的SSH密钥在磁盘上受密码保护的优点,但是您可以将其用作无密码密钥。 这样做还有一个好处,就是您可以通过SSH转发SSH代理:如果您将SSH从计算机从SSH转发到服务器A,然后再到服务器B,则最后一个连接可以使用存储在计算机上的密钥(而不必复制您的服务器A密钥)。

  • 从密钥中完全删除密码(您可以使用ssh-keygen将密码更改为空白)

您如何执行数据传输? 是scp吗? 检查您的系统用户名,确保正确的用户将公共密钥安装到authorized_keys文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM