ssh 恒定的“输入公钥密码”

cep*_*3us 3 ssh ssh-agent

ssh <host>要求输入公钥密码的原因可能是什么

Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':
Run Code Online (Sandbox Code Playgroud)

即使提供了一个好的密码?

当我指定一个提供者时,我对 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 
Run Code Online (Sandbox Code Playgroud)

重新启动后,我无法 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
Run Code Online (Sandbox Code Playgroud)

附:distro = debian sid , %d 是我的主文件夹

解决方案 -> 更改 ssh 配置条目:

正如 Jakuje 所写,问题出在错误的 ssh 配置文件条目中

# ~/.ssh/config

Host {host}
    IdentityFile  ~/.ssh/id_rsa.pub   # should be ~/.ssh/id_rsa 
Run Code Online (Sandbox Code Playgroud)

Jak*_*uje 6

你可能在你ssh_config~/.ssh/config像行

Host *
  IdentityFile /home/%d/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

或类似。这有两个问题。替换%d意味着整个主目录和IdentityFile选项应该获得私钥,而不是公钥。

这个上游错误描述了它要求密码的原因(简而言之,OpenSSH 不会验证从 OpenSSL 返回的错误,并且每个错误都被解释为错误的密码),并且应该在下一次更新中修复。

或者您可能有一些类似的别名试图使用此密钥?的输出是type ssh什么?