因此,我一直在尝试在包含 1 个主节点和 2 个工作节点的 Google 集群容器之间建立 ssh 连接。我使用 ssh-keygen 为所有三个节点生成密钥对,将 2 个工作节点的两个私钥发送到主节点并发送到 .ssh/autherized_keys 文件中。然后我也与两个工作节点共享了这个文件。
这种方法可以立即成功建立 ssh 连接。ssh 连接正常,我也可以使用 scp 发送文件。然而,在后期,当我注销并重新登录虚拟机时,ssh 连接变得非常不稳定,有时它会返回连接失败错误:权限被拒绝(公钥),而有时可以再次触发连接。
有人知道问题出在哪里吗?提前致谢!
答案1
如果它在某一时刻可以工作但现在不工作了,请执行以下操作:
# Adjust paths as necessary. May need to add sudo if you're not running it as root.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/* && chmod 644 ~/.ssh/authorized_keys
如果仍然不行,请验证 authorized_keys 的内容,并检查 /etc/ssh/sshd_config(或任何 sshd 配置文件)中的以下值。这将禁用密码验证,并启用针对系统的 ssh 验证。
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM no # Just my choice.
安全注意事项:我建议在访问云环境时使用受密码保护的私钥,并且只针对单个系统(跳转服务器)进行设置。从那里,您可以更自信地对其余环境使用无密码 ssh 身份验证。