可能是什麼原因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
?