Ubuntu 22.04 升級了 OpenSSH 到8.9,這個版本默認開啟 [email protected] 作為密鑰交換(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)中禁用這個算法
1 |
KexAlgorithms -sntrup761x25519-sha512@openssh.com |
同理 diffie-hellman-group16-sha512 和 diffie-hellman-group18-sha512 也應該被禁用,但它們優先級本來就很低。
如果仍然有問題,把Kex Host Key Algorithm也改一下,如改成
1 |
HostKeyAlgorithms ssh-ed25519 |