ssh-keygen只适用于root?

如果只为root用户设置,ssh-keygen -t rsa是否工作

即,如果本地系统上的用户名是钠,我使用上述命令生成密钥,而在远程系统上,如果我把密钥放在/root/.ssh authorized_keys中,这个工作。

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

这仍然提示input密码。这个预期的行为或者是上述程序中的一些错误

谢谢..

检查远程系统的权限:

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

有一个工具,可以安装在您的远程(Ubuntu的/ debian有它)称为: ssh-copy-id这将为你做这个:

 $ ssh-copy-id <remote> 

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

长版本:

 #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 

从〜钠/ .ssh / authorized_keys检查权限一直到/。 如果其中任何一个是世界可写的ssh密钥将不被信任。

运行ssh-keygen作为你需要密钥的用户。 它应该在你要连接的系统上运行。

ssh-copy-id会将目标机器的ID复制到你想要使用密钥的机器上。

尝试这个:

 ssh -v [email protected] 

可能是你正在尝试login到remote4系统sodium ,但你安装natrium关键。

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

如果你想从一台机器到另一台机器进行SSH连接,那么私钥需要位于你正在从中进行SSH连接的帐户的.ssh文件夹中,并且公钥必须位于帐户中的.ssh / authorized_keys文件中正在通过SSH连接。 密钥是为用户,而不是为机器。 所以你安装它们的账户有很大的不同。

还有一点需要记住的是你使用的SSH版本,据我所知,SSH2的密钥应该在.ssh / authorized_keys2。

最后,要真正看到发生了什么事情,最好遵循Lexsys的说明,并使用-v标志以详细模式ssh。