MercurialへのアクティブなSSH接続を必要とするビルドシステムがあり、そのためにはssh-agent
常にキーをロードする必要があります。
問題は、SSHエージェントを作成し eval $(ssh-agent -s)
て環境変数を設定した後でも、次の問題が発生することです。
- SSH_AUTH_SOCK
- SSH_AGENT_PID
行為env | grep SSH
:
SSH_AGENT_PID=7601
SSH_CLIENT=***.***.***.*** 53371 22
SSH_AUTH_SOCK=/tmp/ssh-4gJ9y89gPzbg/agent.7600
SSH_CONNECTION=***.***.***.*** 53371 10.0.67.4 22
EC2インスタンスからログアウトし、数時間プログラムを実行してリポジトリをインポートした後、突然次のエラーが発生します。
CommandError: (-1, 'remote: ssh_exchange_identification: Connection closed by remote host', 'abort: no suitable response from remote hg!')
その後、確認に行ったときにenv | grep SSH
設定された唯一の項目SSH_CONNECTION
はとですSSH_CLIENT
。
なぜこれが起こるのですか?これらの環境変数はセッション内でのみ設定されますか?
それでは、長いログアウト後にのみ失敗するのはなぜですか?
これら2つの環境変数を設定しないことによってプログラムが中断されないように、これらの環境変数を常に存在させるにはどうすればよいですか。
答え1
パスワードがタイムアウトしましたが、オペレーティングシステムや設定が不明です。