SSHエージェントの新しいインスタンスを再生成せずにsshを介してSSHキーを追加するにはどうすればよいですか?

SSHエージェントの新しいインスタンスを再生成せずにsshを介してSSHキーを追加するにはどうすればよいですか?

.bashrcに以下を追加しました。

ssh-add ~/.ssh/id_rsa

したがって、シェル/ターミナルアプリケーション(macOSのiTerm2)で新しいタブを開くと、SSHエージェントを使用してSSH IDが自動的に追加されるため、タブにSSHパスワードを手動で入力する必要はありません。しかし、タブが多いとssh-agentの実行インスタンスを多く持つ必要はないようです。

これを達成するより良い方法はありますか?

ベストアンサー1

問題は、シェルを初期化するたびにエージェントへの新しい呼び出しを開始することです(おそらくまたは.bash_profile..bashrcこれは不要であるため、対応するssh-agent呼び出しを見つけて削除する必要があります)。

OSX では、通常、デスクトップセッションの開始時に SSH エージェントが起動します。たとえば、

myhost:~)-> ps -ef | grep ssh-agent
  501   986     1   0 10:18AM ??         0:00.14 /usr/bin/ssh-agent -l
  501  2126   736   0  5:30PM ttys007    0:00.00 grep ssh-agent

これにアクセスするには、リスニングソケットがどこにあるかを調べる必要があります。通常、任意の英数字識別子が/tmp/com.apple.launchd.<blah>/Listenersどこに<blah>あるかを調べる必要があります。いくつかありますが、「リスナー」ソケットが必要です。

ソケットが見つかったら、標準のSSH環境変数を使用して接続できますSSH_AUTH_SOCK。たとえば、

myhost:~)-> export SSH_AUTH_SOCK=/tmp/com.apple.launchd.1h2j3k4l5/Listeners
myhost:~)-> ssh-add ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: <typing_here>
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)

シェルにエクスポートしたら、ssh-addこの時点でコマンドを使用してキーパスワードを入力し、そのキーをエージェントに追加できます。ナビゲートしたい他のオプションについては、ssh-agentのマニュアルページをご覧ください。

おすすめ記事