可能是什么原因ssh <主机>正在询问公钥密码
Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':
即使提供了一个好的密码?
当我指定提供商时,我对 pkcs11 pam 模块登录没有问题,并且当我通过添加密钥时也没有问题ssh-add
100% 这是客户端问题,可能是 ssh 代理正在捕获请求?
您的意思是,不断要求您输入密码,但甚至不接受正确的密码? “当我指定一个提供商时”到底是什么意思..?格哈德
$ ssh {host}
Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':
Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':
Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':
Permission denied (publickey).
$ ssh-add
Enter passphrase for /home/%d/.ssh/id_rsa:
Identity added: /home/%d/.ssh/id_rsa (/home/%d/.ssh/id_rsa)
$ ssh {host}
logged in
重新启动后,我无法 ssh,因为输入密码失败,但我可以通过 pkcs11 将密钥添加到代理或 ssh
$ ssh -I /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so {host}
Enter PIN for 'PIV_II (PIV Card Holder pin)':
...
logged in
附注distro = debian sid , %d 是我的主文件夹
解决方案 -> 更改 ssh 配置条目:
正如 Jakuje 所写,问题出在错误的 ssh 配置文件条目中
# ~/.ssh/config
Host {host}
IdentityFile ~/.ssh/id_rsa.pub # should be ~/.ssh/id_rsa
答案1
你的行ssh_config
中可能有这样的~/.ssh/config
Host *
IdentityFile /home/%d/.ssh/id_rsa.pub
或类似的。这有两个问题。替换%d
意味着整个主目录和IdentityFile
选项应该获得私钥,而不是公钥。
它要求输入密码的原因在此进行了描述上游错误(简而言之,OpenSSH 不会验证从 OpenSSL 返回的错误,并且每个错误都会解释为错误的密码),并且应该在下一次更新中修复。
或者您可能有一些类似的别名尝试使用此密钥?的输出是什么type ssh
?