我有一个运行 Centos8 的 AWS EC2 实例,使用常规 ssh 客户端(不是 putty)建立完美的 SSH 连接。
我需要使用 Windows10 Pro 桌面上的 Putty 进行连接。
我希望这个社区可以提供我尚未找到的修复程序。
当我尝试使用 putty-gen 创建的对中的公钥进行连接时,出现“服务器拒绝我们的密钥”的信息。
该authorized_keys
文件包含以下条目(从 puttygen 复制):
ssh-dss AAAAB3NzaC1kc3MAAACBAPEsveu9UvIu8rqQvyMTAlpEmzZDHEHy9tzm33hqooVDYx8Y2HKL1pOWFCtORMHrQC0s2tMoWUmuN8zj7fJe2JUrU+pxPj8BoaeMEBlIQlw6YLkkl8oNysNs1gn3NBG8Pbii5SCWLOMHYNU/FrrGfIC4gK98FWOs+XB8b2TDC+GhAAAAFQDr8V35S0yUUHkKQhOdTBE01z/xnwAAAIEA413XRIqaOoD7fNhJL75gFWjCEfmoDjrUxCMTCWruQB0/ggh3kaUXCZW09M3uv12ibHg76Hjv2ams2tmMp3uHCkEd0Aiuxh5M1vbu/w2YwzSd2QVbMXlXBQdLiqatDuKENFoKk9x/RsZT5gnyDN65/BC/t7vTMk/Q9DxtBklFh6IAAACBAJINInKSQvRCwnlsASdia2QrRCXK7+aTycg8rWDpHI5O+CpKaphdpxrv8yfAElfziLkt4HYo8QO6dCgonktt0s5bIkdpP35yN6P32wIOtqpYLqsIMsnmLxolVqAbmPO0V/Z79gYkNVzWWRb0PnImYQepcUZFO03k8Sq4ny9y/Tsk Tom_S_admin
这似乎是我的本地凭证的问题,但我已经尝试了所有常见的修复方法,但没有成功。
我尝试了建议的方法另一个 stackoverflow 问题/etc/ssh/sshd_config
——在服务器上添加以下内容:
PubkeyAcceptedAlgorithms +ssh-rsa
遗憾的是,这个功能坏了sshd
,所以我恢复了更改。
以下是我在桌面上看到的内容:
答案1
ssh-dss
“ssh-dss” 表示 DSA 密钥。DSA 密钥已被弃用多年。
您应该重新开始并生成更现代类型的密钥。RSA 是最广泛兼容的选项,甚至更现代的类型也可以使用更短的密钥提供相同的安全性,但只要密钥长度足够好(最低 2048 位,我追求 4096 位),RSA 仍然没问题。
答案2
我很感谢两位的帮助@plugwash和@Perigrino69。
我通过将两者结合起来解决了这个问题,结果发现方法很简单。
我使用了最新版本的PuTTY
和PuTTYgen
来生成一个新的密钥对。我复制了字段PuTTYgen
并将其粘贴到authorized_keys
:
ssh-rsa AAAAB3NzaC1yc2 <elided> BZZD/FJpyOsk+ovzNvpWZpGro3Pe4MGCA/ZdEDPKrQ9N8RhIMYZYvwle4NNMgbckQnCjmJ6FOvvyV4/YsvHzXeOMOelPrPtGTnFnayw6kAqdK7xEY2d2z4xqVyhgni/xTA9OASfCPJXzf rsa-key-20230301
我将私钥设置PuTTY
为新生成的私钥。
这正是所期望的——问题解决了,
答案3
PuTTy 不能直接使用 OpenSSH 密钥。您需要先使用 PuTTYgen 进行转换。
- 从 PuTTY 密钥生成器菜单中单击“转换”,然后选择“导入密钥”。
- 导航到 OpenSSH 私钥并单击“打开”。
- 在“操作”/“保存生成的密钥”下,选择“保存私钥”。
- 选择一个可选的密码来保护私钥。
- 将私钥以“id_rsa.ppk”的形式保存到桌面。
接下来您需要将公钥复制到服务器。
- 突出显示 PuTTY 密钥生成器中的整个公钥并复制文本。
- 启动 PuTTY 并使用您现有的用户凭据登录远程服务器。
- 使用您喜欢的文本编辑器创建和/或打开 authorized_keys 文件:
- 将公钥粘贴到authorized_keys文件中。
- 保存文件并关闭文本编辑器。
- 调整authorized_keys文件的权限,使该文件不允许组可写的权限
chmod 600 ~/.ssh/authorized_keys
完成后,您应该能够使用私钥进行连接。
- 在“会话”下输入远程服务器主机名或 IP 地址。
- 导航到“连接”>“SSH”>“验证”。
- 点击“认证参数”/“用于认证的私钥文件”下的“浏览...”。
- 找到“id_rsa.ppk”私钥并点击“打开”。
- 最后再次点击“打开”,即可通过密钥对认证登录远程服务器。
这来源(IONOS)还有澄清的截图等等。