无法为新用户生成有效的 ssh 公钥/私钥对

Posted

技术标签:

【中文标题】无法为新用户生成有效的 ssh 公钥/私钥对【英文标题】:Can't generate a working ssh public / private key pair for new user 【发布时间】:2013-01-05 00:17:31 【问题描述】:

我正在尝试向我的 Ubuntu 系统添加一个新用户并授予他们 SSH 访问权限,使用公钥/私钥登录。但我似乎无法让它工作。

使用 putty gen 生成公钥/私钥对。然后将公钥复制到他们的 homedir/.ssh/authorized_keys 中。但是,当我在 Windows 会话中将私钥加载到 Pageant 并尝试使用 putty 进入时,我得到“断开连接:没有可用的支持的身份验证方法”。

有趣的是,如果我将相同的公钥放在现有用户的 ./.ssh/authorized_keys 文件中,我可以使用该用户登录。这是由我之前的人设置的,但我现在无法联系,所以我不知道有什么区别。

如果我检查 etc/ssh/sshd_config 文件,AuthorizedKeysFile 行将被注释掉。 #AuthorizedKeysFile %h/.ssh/authorized_keys

但是即使我把它放回去并重新启动 ssh 服务它仍然无法工作(虽然我不认为会解决它,因为为什么当前用户会工作)

有什么我可以做的吗?

【问题讨论】:

当我遇到这个问题时,它几乎总是权限。 【参考方案1】:

阅读系统日志中sshd 守护程序的错误消息(auth.logsecurity.log 或类似的)。

我的猜测是.ssh.ssh/authorized_keys 上的目录和/或文件权限在新用户的家中过于宽松(不安全)。如果这是问题,这应该可以解决它:

chmod 700 .ssh
chmod 644 .ssh/authorized_keys

【讨论】:

以上是关于无法为新用户生成有效的 ssh 公钥/私钥对的主要内容,如果未能解决你的问题,请参考以下文章

SSH 在 Windows 上为公钥/私钥对寻找错误的位置

ssh免密码登陆及其原理

ssh免密码登陆及其原理

ssh-agent代理的简单用法

ssh 免密码登录

Linux使用ssh公钥实现免密码登录Linux