エージェント キーをメモリに保持するプログラムで、一度ロックを解除するだけで済みます 、毎回ではなく。 ssh-agent これを SSH キーに対して行います。
ssh-agent を起動する通常の方法
-
eval `ssh-agent`
– これにより、エージェントがバックグラウンドで実行され、current に適切な環境変数が設定されます シェル インスタンス。(ssh-agent を引数なしで開始すると、シェルによって解釈されるコマンドが出力されます。)
-
exec ssh-agent bash
– 新しいを開始しますbash
のインスタンス シェル、現在のものを置き換えます。(1 つ以上の引数を指定すると、ssh-agent 何も出力しませんが、指定されたコマンドを開始します:この場合、
bash
シェルですが、技術的には何でもかまいません。)ターミナル ウィンドウを閉じると ssh-agent が自動的に強制終了されるため、2 番目の方法が好まれる場合があります。 (
eval
で開始する場合 、エージェントは実行されたままになりますが、アクセスできなくなります。)
ただし、これは空のエージェントのみを開始します。実際に便利にするには、ssh-add を使用する必要があります 、キーのロックを解除します (通常は ~/.ssh/id_*
) をエージェントにロードし、ssh からアクセスできるようにします。 または sftp
さらに、セッションの開始時にいくつかのキーを追加することもできます。
~/.bashrc
を編集します ファイル、および追加:
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
ssh-add -l
でキーを確認してください
ssh-agent -k
で現在の ssh-agent セッションを停止できます
ssh-agent と .bashrc について知っておくべきことは、あまりにも多くのキーをロードしないことです。 ssh デーモンのデフォルトの試行回数は 6 回に制限されています。これは /etc/ssh/sshd_config
で変更できます。 MaxAuthTries
で