Sshコマンドは、ローカルシステムからのみ実行します。
例えば:
ssh [email protected] df -h
これは機能し、その後、sshプロトコルがハングしました。約10分間ハングしたままになり、その後再び正常に戻ります。私が得るエラーメッセージはこれです。
ssh: connect to Host mydomain.com port 22: Operation timed out
問題は、ローカルマシンで実行されているssh-agentがハングし、別の接続を試行できないことです。 ssh接続が終了してプロセスが終了するとssh-agent
が終了するはずですが、何らかの理由でOS Xの実装がハングします。 ssh-agentのこのインスタンスは、セキュリティ上の理由から、ユーザーの他のインスタンスでは使用できません。
これがUbuntuでも発生している場合に適用されると思われる解決策は、sshセッションが完了したら、別のセッションを開始する前にssh-agentプロセスを強制終了することです。
ssh-agent
ハングが問題であることが判明した場合は、セッション後に次のコマンドで自動的に終了できます。
~$ ssh username@hostname && kill $(pgrep ssh-agent)
[編集]
このコマンドは、接続元のクライアントにsshを使用するユーザーが1人しかいない場合、異なるユーザーからの複数の同時ssh接続を持つマシンから接続する場合です。あなたが使用したいでしょう:
~$ ssh username@hostname && kill $(ps -U your_local_username | grep ssh-agent | grep -oP "^\d+")