再起動するたびに、次のコマンドを実行する必要があります。
ssh-agent /bin/bash
ssh-add ~/.ssh/key_rsa
最初の質問は、なぜ/bin/bash
が必要なのか、そしてそれは何のために使われるのかということです。
次に、再起動時に毎回これらのコマンドを実行しても大丈夫ですか、それともこれを.bashrc
またはどこかに配置して、毎回ssh-add
する必要がないようにする必要があります。
私はscreen
を使用しており、すべての画面タブが異なり、すべての画面タブに対してこれらのコマンドを実行する必要があることに注意してください。
編集:
たとえば、githubにプッシュする必要がある場合は、ssh-add ~/.ssh/github_rsa
を実行する必要がありますが、最初にssh-agent /bin/bash
を実行しない限りこれは機能しません。
プレーンなssh-agent
が機能せず、ssh-agentがすでに実行されているため、これはscreen
に関連している可能性がありますが、ssh-agent /bin/bash
を実行する必要があります。
_ssh-agent
_は、復号化されたsshキーを_ssh-add
_するとメモリにキャッシュするデーモンであるため、ssh
が認証に使用しようとするたびにパスワードを入力して復号化する必要はありません。メモリにキャッシュされるということは、次に_ssh-agent
_が開始されたときに、キーを復号化してエージェントに再度追加する必要があることを意味します。そのため、もう一度_ssh-add
_する必要があります。
_/bin/bash
_の部分は実際には必要ありません。通常、_ssh-agent
_を起動すると、eval
edであることが意図されているいくつかの環境変数がstdoutに出力されるため、ssh
は_ssh-agent
_ソケットがどこにあるかを認識します。代わりに、起動時に_ssh-agent
_にコマンドを指定すると、代わりに環境変数を設定してそのコマンドが実行されます。
これは、コマンドの実行後に使用しているbashインスタンスが、以前に使用していたもののサブシェルであることを意味します。それを_.bashrc
_に追加する際の問題は、新しいシェル_ssh-agent
_が開始すると_ssh-agent
_が再び実行され、再帰ループが発生することです。代わりに、サブシェルを開始する代わりに、 _ssh-agent
_ in your _.bash_profile
_ を開始して出力を評価し、ログに記録するたびに手動で_ssh-add
_を使用することをお勧めします。に。
もう1つのオプションは、_ssh-agent
_を使用する代わりに、 GNOME Keyring のSSHエージェントエミュレーションを使用することです。パスフレーズを保存しない_ssh-agent
_とは異なり、GNOMEキーリングはパスフレーズをキーリングのキーに保存するため、手動でキーを追加する必要はありません。
キーチェーンの使用をお勧めします http://www.funtoo.org/Keychain
キーチェーンは、便利で安全な方法でsshキーとGPGキーを管理するのに役立ちます。これはssh-agentおよびssh-addのフロントエンドとして機能しますが、ログインセッションごとに1つのssh-agentの標準ではなく、システムごとに1つの長時間実行されるssh-agentプロセスを簡単に作成できます。
まず、debian/ubuntuのディストリビューションに従ってインストールします
apt-get install keychain
次に、以下を〜/ .bashrcファイルに追加します。
eval `keychain --eval id_rsa`