ssh-keygen 仅适用于 root 吗?

ssh-keygen 仅适用于 root 吗?

如果仅为 root 用户设置,ssh-keygen -t rsa 是否有效

即,如果本地系统上的用户名是 soap,并且我使用上述命令生成密钥,并且在远程系统上我将密钥放在 /root/.ssh authorized_keys 中,则此方法有效。

但在远程系统上,如果密钥放在 /home/natrium/.ssh authorized_keys

这仍然会提示输入密码。这是预期的行为还是上述过程中存在错误

谢谢..

答案1

检查远程系统上的权限:

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

有一个工具可以安装在你的 dist 中(ubuntu/debian 有它),叫做:ssh-复制-id它将为你完成这个:

$ ssh-copy-id <remote>

如果这不起作用,请尝试使用选项“-v”的 ssh 来查看更详细的消息。

长版本:

#From client to server
client$ scp ~/.ssh/id_rsa.pub remote_server.org:

# next, setup the public key on server
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub

答案2

检查从 ~sodium/.ssh/authorized_keys 到 / 的权限。如果其中任何一个是全球可写的 ssh 密钥将不被信任。

以您需要密钥的用户身份运行 ssh-keygen。它应该在您要连接的系统上运行。

ssh-copy-id 将会把 ID 从目标机器复制到您希望使用密钥的机器。

答案3

尝试这个:

ssh -v [email protected]

也许您正尝试以 身份登录 remote4 系统sodium,但您安装了 密钥natrium

答案4

在哪里生成密钥并不重要,重要的是在哪里存储它们。

如果您想要从一台机器通过 SSH 连接到另一台机器,那么私钥需要位于您以 id_rsa 身份通过 SSH 连接的帐户的 .ssh 文件夹中,而公钥必须位于您通过 SSH 连接的帐户的 .ssh/authorized_keys 文件中。密钥是为用户准备的,而不是为机器准备的。因此,您安装密钥的帐户会产生很大的影响。

另外需要记住的一点是您正在使用的 SSH 版本,据我所知,对于 SSH2,密钥应该位于 .ssh/authorized_keys2 中。

最后,为了真正了解发生了什么,最好按照 Lexsys 的说明并使用 -v 标志以详细模式进行 ssh。

相关内容