ssh による定数「公開鍵のパスフレーズを入力してください」

ssh による定数「公開鍵のパスフレーズを入力してください」

その理由は何だろうかssh < ホスト >公開鍵のパスワードを要求しています

Enter passphrase for key '/home/%d/.ssh/id_rsa.pub':

良いパスワードを提供したとしても?

プロバイダーを指定するとpkcs11 pamモジュールログインに問題はなく、キーを追加するときにも問題はありません。ssh-add

100% これはクライアント側の問題であり、SSH エージェントがリクエストをキャッチしている可能性があります。

パスワードを常に求められ、正しいパスワードでも受け入れられないということですか? 「プロバイダーを指定すると」とは、具体的にどういう意味ですか? gerhard d

$ 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

ps. 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

または類似のもの。これには 2 つの問題があります。置換は%dホーム ディレクトリ全体を意味し、IdentityFileオプションは公開キーではなく秘密キーを取得する必要があります。

パスフレーズを要求する理由はここに記載されていますアップストリームのバグ(簡単に言うと、OpenSSH は OpenSSL から返されたエラーを検証せず、すべてのエラーが不正なパスフレーズとして解釈されます)、これは次のアップデートで修正される予定です。

または、このキーを使用しようとしている類似のエイリアスがある可能性があります。 の出力は何ですかtype ssh?

関連情報