You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SSH密钥可在FileZilla与Windows CMD正常使用,但无法通过PuTTY连接升级至Bookworm的树莓派

SSH密钥可在FileZilla与Windows CMD正常使用,但无法通过PuTTY连接升级至Bookworm的树莓派

我把6台树莓派从Bullseye升级到了Bookworm,步骤如下:

  • 修改/etc/apt/sources.list配置文件
  • 执行sudo apt update
  • 执行sudo apt full-upgrade

升级过程中我全程选择默认的N选项,没有修改任何配置文件。升级后大部分功能都正常,但SSH连接出了问题——用PuTTY尝试密钥登录时,会弹出服务器拒绝了我的密钥的错误提示,重启树莓派也没能解决。

不过抱着试试看的心态,我用同一个.ppk密钥通过FileZilla连接SFTP,居然完全正常!可惜SFTP没有sudo权限,没法修改系统层面的配置,现在我想解决PuTTY的SSH连接问题。


看起来你遇到了Bookworm升级后PuTTY密钥登录失效但SFTP正常的典型问题,我来帮你分析下可能的原因和解决办法:

1. 排查PuTTY的算法兼容性问题

Bookworm版本的OpenSSH默认禁用了旧版的ssh-rsa签名算法,而老版本的PuTTY可能默认还在使用这个算法,这就会导致服务器拒绝密钥。你可以这么调整PuTTY的配置:

  • 打开PuTTY,进入Connection > SSH > Auth,确认“Preferred ssh protocol version”选择的是2
  • 进入Connection > SSH > Kex,确保勾选了curve25519-sha256@libssh.orgecdh-sha2-nistp256这类现代密钥交换算法
  • 进入Connection > SSH > Advanced,在“Preferred signature algorithms”里手动添加rsa-sha2-256,rsa-sha2-512,强制PuTTY使用新版签名算法

另外,如果你的PuTTY版本比较旧,建议直接升级到最新版,新版已经默认支持Bookworm要求的算法。

2. 检查用户目录与密钥文件的权限

Bookworm对SSH密钥文件的权限要求更严格,如果权限不符合要求,sshd会直接拒绝密钥登录。你可以通过SFTP执行以下命令检查:

# 查看.ssh目录权限
ls -ld ~/.ssh
# 查看authorized_keys文件权限
ls -l ~/.ssh/authorized_keys

正常情况下,.ssh目录权限必须是700authorized_keys文件权限必须是600。如果权限不对,你可以通过SFTP的命令行修改:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. 查看SSH服务器日志定位问题

如果上面的方法都没用,你可以尝试查看SSH服务器的日志(需要有读取权限),日志文件通常在/var/log/auth.log里。通过SFTP下载这个文件,搜索包含sshdrefused的条目,就能找到服务器拒绝密钥的具体原因,比如是算法不支持还是权限问题。

如果日志需要sudo才能读取,那可能需要你通过物理方式(接显示器键盘)登录树莓派,或者找其他有sudo权限的用户帮忙查看。

备注:内容来源于stack exchange,提问作者Sawtaytoes

火山引擎 最新活动