我已阅读了 StackExchange Q/AI 能找到的所有关于使用 PuTTY 密钥对进行 SSH 失败的问题。我ssh-keygen
在 macOS 上生成了一个 RSA 密钥对,用于ssh-copy-id
将公钥复制到authorized_keys
我的服务器上的文件中,禁用密码验证后,我能够使用密钥对成功登录服务器。
然后我转到我的 Windows PC,打开 PuTTYGen,导入 id_rsa(私钥)文件,并将私钥保存为格式ppk
。然而,当我将其添加到我的 PuTTY>Connection>SSH>Auth>Priv.Key 并尝试登录我的服务器时,我server refused our key
从控制台窗口获取。
我尝试在 PuTTYGen 窗口中将位数从 2048 更改为 4096(因为指纹显示 ssh-rsa 4096),我检查了文件authorized_keys
(600)及其目录(700)的权限,使用了 KiTTY 和 Solar PuTTY 作为替代方案,并将日志级别更改为DEBUG3
服务器的sshd_config
。最后,我注意到了这一点:
debug1: trying public key file /root/.ssh/authorized_keys
debug1: fd 4 clearing O_NONBLOCK
debug2: key not found
debug1: restore_uid: 0/0
debug3: mm_answer_keyallowed: key 0x559259bd7e00 is not allowed
Failed publickey for root from 10.0.0.125 port 57253 ssh2: RSA SHA256:...
说实话,我不知道下一步该怎么做。我觉得我已经尝试了所有方法,但我也不知道我是否对调试日志了解不够。任何帮助我都感激不尽,谢谢。
答案1
我遇到了同样的问题,Putty 使用 SSH 私钥转换为 Putty 格式,但服务器拒绝使用它。我的解决方案是:
- 下载最新的 putty 和 puttygen: 例如 0.76www.chiark.greenend.org.uk
- 使用更新的 puttygen 重新生成 Putty 私钥
- 使用最新的 putty 配置重新登录以使用重新生成的私钥
对于私钥转换/导出,我使用了默认的 puttygen 设置。新的 putty 私钥最终具有以下标头:
PuTTY-User-Key-File-3: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
希望这可以帮助