论野生技术&二次元

Ubuntu 22.04 / OpenSSH 8.9 使用 gpg-agent 登录报错 agent refused operation 的解决方法

Ubuntu 22.04 升级了 OpenSSH 到8.9,这个版本默认开启 sntrup761x25519-sha512@openssh.com 作为密钥交换(KEX)方法。这个算法使用 512 bit 的 hash。

如果客户端和服务端都升级到了8.9或以上,则成功协商使用这一KEX算法,这时如果使用 gpg-agent 的 SSH 功能签名则会报 agent refused operation。

打印 gpg-agent 的日志可看到报错为 Provided object is too large。

解决方法是在客户端(~/.ssh/config)或服务端(/etc/ssh/sshd_config)中禁用这个算法

同理 diffie-hellman-group16-sha512 和 diffie-hellman-group18-sha512 也应该被禁用,但它们优先级本来就很低。

如果仍然有问题,把Kex Host Key Algorithm也改一下,如改成

退出移动版