SSH:ssh-keygen 生成 rsa 密钥,但不工作

Posted

技术标签:

【中文标题】SSH:ssh-keygen 生成 rsa 密钥,但不工作【英文标题】:SSH : ssh-keygen generating rsa key, but not working 【发布时间】:2014-10-22 00:18:24 【问题描述】:

我正在使用ssh-keygen 并且没有提供密码短语,则成功生成并显示了密钥指纹。 然后我给ssh-copy-id user@localhost,然后在提供状态Number of key(s) added : 1之后提示我的用户密码。 现在,如果我在做ssh localhost,它会再次提示输入密码。 如果我这样做ssh user@localhost,它也会要求输入密码。

PS:我使用过:ssh-addsudo ufw allow 22 每次我都使用ssh localhost 时似乎没有任何工作正常@ 提示我输入密码。

[编辑]

ssh -v localhost 显示

debug1:SSH2_MSG_KEXINIT 已发送 调试 1:收到 SSH2_MSG_KEXINIT debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com 无 调试1:kex:客户端->服务器aes128-ctr hmac-md5-etm@openssh.com无 debug1:发送 SSH2_MSG_KEX_ECDH_INIT 调试 1:期待 SSH2_MSG_KEX_ECDH_REPLY debug1:服务器主机密钥:ECDSA b2:58:a9:da:84:3f:43:1c:86:51:ba:cd:b7:88:a3:74 debug1:主机 'localhost' 已知且与 ECDSA 主机密钥匹配。 debug1:在 /home/harsh/.ssh/known_hosts:1 中找到密钥 debug1:ssh_ecdsa_verify:签名正确 debug1:SSH2_MSG_NEWKEYS 已发送 debug1:期待 SSH2_MSG_NEWKEYS debug1:收到 SSH2_MSG_NEWKEYS debug1:服务器不允许漫游 调试 1:已发送 SSH2_MSG_SERVICE_REQUEST 调试 1:收到 SSH2_MSG_SERVICE_ACCEPT debug1:可以继续的身份验证:公钥、密码 debug1:下一个认证方法:publickey debug1:提供 DSA 公钥:/home/harsh/.ssh/id_dsa debug1:可以继续的身份验证:公钥、密码 debug1:提供 RSA 公钥:/home/harsh/.ssh/id_rsa debug1:可以继续的身份验证:公钥、密码 debug1:尝试私钥:/home/harsh/.ssh/id_ecdsa debug1:尝试私钥:/home/harsh/.ssh/id_ed25519 debug1:下一个认证方法:密码 苛刻@localhost 的密码:

【问题讨论】:

您的公钥在.ssh/authorized_keys 文件中吗? 您可以运行 ssh -v user@localhost 并检查调试输出以查看 ssh 客户端尝试了哪些私钥,以及结果如何。 @knittl 是的,公钥在那里 尝试私钥.ssh/id_ecdsa.ssh/id_ed25519 然后显示下一个身份验证方法:密码 【参考方案1】:

我会检查这些:

确保远程 .ssh 目录和 authorized_keys 文件具有适当的权限

两者都应归您所有 $HOME/.ssh 上的权限应该是 0700 (rwx:---:---) 和 0600 (rw-:---:---) 在 $HOME/.ssh/authorized_keys 上

验证 ssh 守护进程是否允许密钥身份验证,即对于 openssh 服务器,其配置中应该有这一行:

PubkeyAuthentication 是

然后在启用调试输出的情况下重新运行 ssh 命令

ssh -v 你的主机

它将向您显示它将尝试哪些身份验证方法,即

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password debug1: Next authentication method: publickey

祝你好运! :)

【讨论】:

Authentications that can be continue : publickey,password debug 1 : Next authentication method: publickey 但最终它仍然在尝试私钥,然后是密码!不知道为什么。 我不断收到debug1: identity file /home/yuri/.ssh/id_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file /home/yuri/.ssh/id_rsa-cert type -1【参考方案2】:

我通过简单地在我的 ubuntu 机器上重新安装 ssh 设法克服了这个问题。

问题是因为ssh 在安装OS 时没有正确安装。

【讨论】:

【参考方案3】:

我在通过 NFS(网络文件系统)挂载 /home 目录的设置中遇到了同样的问题。贝娄命令完成了这项工作。

[root@localhost]# setsebool -P use_nfs_home_dirs=true

【讨论】:

以上是关于SSH:ssh-keygen 生成 rsa 密钥,但不工作的主要内容,如果未能解决你的问题,请参考以下文章

Paramiko 无法识别 ssh-keygen 生成的 SSH 密钥:“不是有效的 RSA 私钥文件”

Paramiko 无法识别 ssh-keygen 生成的 SSH 密钥:“不是有效的 RSA 私钥文件”

ssh-keygen - 如何使用特定用户名设置 rsa 密钥

ssh-keygen常用参数详解

ssh-keygen命令详解

ssh-keygen公钥进行免登