ネットワーク上のマシンの1つ(Mint 12ワークステーション、最新)が定期的に不良状態になり、すべての発信SSH接続がパスワード認証にフォールバックし、キーを使用する代わりに「エージェントがキーを使用した署名に失敗したことを認めました」というエラーが表示されます構成されているベースの認証。
この状態になると、すべての発信接続で100%失敗します。着信キーベースの認証は正常に接続しているように見えます。キーペアを削除して再生成し、公開キーを再配布しようとしましたが、エラーが解決しません。
再起動すると一時的にエラーが解決しますが、数日後に再び発生します。特定のイベント/ワークフローと一致していないようですが、何かが足りない可能性があります。
他の誰かがこれを見たことがありますか?
ここでの「エージェント」はssh-agent
です。これは、秘密鍵をメモリにロードし、将来のssh接続で使用できるように保持するため、パスワードを再入力する必要はありません。どこかにあるように見えますが、キーを忘れるように命令されています(ディスクにサスペンド/ハイバネーションしていますか?暗号化されていないキーがディスクに書き込まれないようにするためです)、またはバグが原因でキーを忘れてしまいますキー。いずれにせよ、ssh-add
を使用すると、キーをエージェントに戻すことができます。
私はかなりssh
が何らかの理由でssh-agent
と通信できなかった場合、別のエラーメッセージが表示されることは間違いありません。 ssh-add
が認証エージェントへの接続を開くことができないと言った場合、本当の問題は、実行が停止したか、エージェントとの連絡方法をssh
に指示する環境変数が行方不明になった、またはソケットファイルが消えた。これが発生しているときに環境変数$SSH_AUTH_SOCK
と$SSH_AGENT_PID
の両方がまだ設定されている場合(echo $SSH_AGENT_PID
を使用)、$SSH_AGENT_PID
によって参照されるssh-agentプロセスがまだ実行されていることを確認してください。もしそうなら、$SSH_AUTH_SOCK
のソケットファイルはまだそこにあります。ソケットを削除している積極的な/tmp
クリーニングプロセスがある可能性があります。