web-dev-qa-db-ja.com

ローカルからコマンドを実行すると、SSHが動作しなくなります(OS Xからログイン)

Sshコマンドは、ローカルシステムからのみ実行します。

例えば:

ssh [email protected] df -h

これは機能し、その後、sshプロトコルがハングしました。約10分間ハングしたままになり、その後再び正常に戻ります。私が得るエラーメッセージはこれです。

ssh: connect to Host mydomain.com port 22: Operation timed out

3
NarayaN

問題は、ローカルマシンで実行されている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+")
2
blanket_cat