如果只为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连接,那么私钥需要位于你正在从中进行SSH连接的帐户的.ssh文件夹中,并且公钥必须位于帐户中的.ssh / authorized_keys文件中正在通过SSH连接。 密钥是为用户,而不是为机器。 所以你安装它们的账户有很大的不同。
还有一点需要记住的是你使用的SSH版本,据我所知,SSH2的密钥应该在.ssh / authorized_keys2。
最后,要真正看到发生了什么事情,最好遵循Lexsys的说明,并使用-v标志以详细模式ssh。