我的服务器OpenSSH从9.8p1更新到9.9p1. 我用Nitrokey Start存了我的ed25519认证私钥,用gpg-agent利用这个卡登录,错误信息是:
sign_and_send_pubkey: signing failed for ED25519 "cardno:..." from agent: agent refused operation
登录其他服务器或者服务器OpenSSH版本降级就可以登录,因此肯定是新版本OpenSSH造成的,但是出错的地方却是客户端。服务器的sshd日志看不出什么有用的信息,我就看gpg-agent的日志。
在 ~/.gnupg/gpg-agent.conf 加上这两行,可以把 gpg-agent 的日志输出到文件 /tmp/gpg-agent.log:
在这期间看到有关于scdaemon的信息,所以我在 ~/.gnupg/scdaemon.conf 加上这两行:
但是没看到什么有价值的信息,只是说 "operation auth result: Conditions of use not satisfied".
上IRC #archlinux咨询这个问题,有网友提示可能是key format的问题,我用的卡可能固件太老,并指出以前出现过OpenSSH更新后卡就不能用的问题。
看 nitrokey-start-firmware 的 release, 我发现最新的一个Release就写着新版本OpenSSH支持的问题,看来 Nitrokey Start 以前的确出现过这类问题,并且我看到的错误信息也是很知名的:https://github.com/Nitrokey/nitrokey-start-firmware/releases/tag/RTM.13
看来我应该先更新 Nitrokey Start 的固件了。
此外经过网友的提示,scdaemon是可以打更详细的日志的,用man看了下scdaemon(1),应该加个 log-level guru,即:
日志的确更详细了,不过我看不懂日志里的内容。翻了几个相关问题的描述,发现可能签名数据过长都会成为问题:https://dev.gnupg.org/T5935
经过 https://github.com/Nitrokey/nitrokey-sta.../issues/67 的提示,我用 ssh -o KexAlgorithms=-sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com 选项禁用最新版用的密钥交换算法可以登录。
sign_and_send_pubkey: signing failed for ED25519 "cardno:..." from agent: agent refused operation
登录其他服务器或者服务器OpenSSH版本降级就可以登录,因此肯定是新版本OpenSSH造成的,但是出错的地方却是客户端。服务器的sshd日志看不出什么有用的信息,我就看gpg-agent的日志。
在 ~/.gnupg/gpg-agent.conf 加上这两行,可以把 gpg-agent 的日志输出到文件 /tmp/gpg-agent.log:
引用:verbose
log-file /tmp/gpg-agent.log
在这期间看到有关于scdaemon的信息,所以我在 ~/.gnupg/scdaemon.conf 加上这两行:
引用:verbose
log-file /tmp/scdaemon.log
但是没看到什么有价值的信息,只是说 "operation auth result: Conditions of use not satisfied".
上IRC #archlinux咨询这个问题,有网友提示可能是key format的问题,我用的卡可能固件太老,并指出以前出现过OpenSSH更新后卡就不能用的问题。
看 nitrokey-start-firmware 的 release, 我发现最新的一个Release就写着新版本OpenSSH支持的问题,看来 Nitrokey Start 以前的确出现过这类问题,并且我看到的错误信息也是很知名的:https://github.com/Nitrokey/nitrokey-start-firmware/releases/tag/RTM.13
看来我应该先更新 Nitrokey Start 的固件了。
此外经过网友的提示,scdaemon是可以打更详细的日志的,用man看了下scdaemon(1),应该加个 log-level guru,即:
引用:verbose
debug-level guru
log-file /tmp/scdaemon.log
日志的确更详细了,不过我看不懂日志里的内容。翻了几个相关问题的描述,发现可能签名数据过长都会成为问题:https://dev.gnupg.org/T5935
经过 https://github.com/Nitrokey/nitrokey-sta.../issues/67 的提示,我用 ssh -o KexAlgorithms=-sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com 选项禁用最新版用的密钥交换算法可以登录。