関係するすべてのマシンがかなり閉じた環境で動作しているため、パスワードなしでキーを使用しています。そのため、ssh-agent は必要ありません。しかし、誤ってスクリプトを実行して、ssh-agent の使用を有効にしてしまったようで、それを停止できません。
プロセスを強制終了することはできますが、次回の起動時に「復号化された」キーがキャッシュにないため、エラー メッセージが表示されずに ssh を実行することはできません。
sign_and_send_pubkey: signing failed: agent refused operation
原因は のようです$SSH_AUTH_SOCK
。これを削除すればすべて解決しますか? それとももっと良い方法がありますか?
編集: この$SSH_AUTH_SOCK
変数は、GNOME デスクトップの端末からチェックした場合にのみ存在します。tty からチェックした場合は何も返されません。
答え1
どうやら、Gnomeが実際の犯人のようです。もっと正確に言うと、gnomeキーリングです。この方法を試しましたか?ここで提案gnome キーリングで ssh を無効にするには? リンクは Ubuntu の gnome キーリングに関するものですが、その情報はディストリビューションに依存しないようです。
のArch Linux ウィキこれについては、次の説明も参考になります:
キーリングデーモンコンポーネントを無効にする
代替のSSHエージェント(例:ssh-agentまたはgpg-agent)を実行したい場合は、GNOME Keyringのsshコンポーネントを無効にするアカウントローカルでこれを行うには、次の手順を実行します。
#!/bin/sh
mkdir ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ &&
printf '%s\n' 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop