两个linux机器之间的ssh - 公钥被拒绝

两个linux机器之间的ssh - 公钥被拒绝

我正在尝试从一个 Ubuntu 盒子连接到另一个 Ubuntu 盒子。两者都是 Google Cloud Platform 中的实例,并且具有内部和外部 IP。

我正在尝试从 lbox-a 连接到 lbox-b (lbox-a 和 lbox-b 是主机名)。

在 lbox-a 中,我使用以下命令生成了 hduser1 的 SSH 密钥:

 ssh-keygen -t rsa -P ""

将公钥添加到 lbox-b 时

hduser1@lbox-a:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser1@lbox-b

我收到错误:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/hduser1/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied (publickey).

我尝试过更换用户1@lbox-b 具有 root、现有用户、不存在用户。并与lbox-b我还尝试使用内部IP和外部IP来代替它。

有时我也会收到超时错误:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: 
/home/ubuntu/.ssh/id_rsa.pub
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: connect to host linuxbox-2 port 22: Connection timed out

请指导我。我不确定是权限问题、端口问题还是托管在 Google Cloud Platform 中的其他原因。

谢谢你!

答案1

失败的原因ssh-copy-id是需要启用密码验证才能传递 ID。在该实用程序的手册页中:

ssh-copy-id是一个使用ssh(1)登录远程机器的脚本(大概使用登录密码,所以应该启用密码验证

由于 ID 尚未被复制,因此不可能以其他方式安全地进行身份验证。如果您无需事先进行身份验证即可运行该命令,那么任何人都可以将其 ID 添加到服务器。

如果您不希望继续启用密码身份验证,您当然可以在成功复制 ID 后关闭密码身份验证。或者,您可以在两台计算机之间手动复制 ID 并将其粘贴到自己身上,然后就不需要使用该ssh-copy-id实用程序。

相关内容