sshキーssh-agent bashおよびssh-add


28

sshキーは初めてです。誰がどのように説明できますssh-agent bashし、ssh-add作品?

将来的にはその内部を理解する必要があります。


これらの用語のいずれかでGoogleのヒットを試しましたか?
ダニエルベック

はい、しました。有用な情報が得られませんでした。私の悪い
-maneeshshetty

回答:


44

エージェントは、あなただけの彼らのロックを解除する必要があるように、メモリ内にあなたの鍵を保持するプログラムです一度代わりたびの、。ssh-agentはSSHキーに対してこれを行います。

ssh-agent起動する通常の方法は次のとおりです。

  • eval `ssh-agent`–これにより、エージェントがバックグラウンドで実行され、現在のシェルインスタンスに適切な環境変数が設定されます。

    ssh-agentは、引数なしで起動すると、シェルによって解釈されるコマンドを出力します。)

  • exec ssh-agent bash– 現在のインスタンスを置き換えて、シェルの新しいインスタンスを開始しますbash

    (1つ以上の引数を指定すると、ssh-agentは何も出力せず、指定されたコマンド(この場合はbashシェル)を開始しますが、技術的には何でもかまいません。)

    2番目の方法は、ターミナルウィンドウを閉じたときにssh-agentを自動的に強制終了するため、推奨される場合があります。(で開始するとeval、エージェントは実行されたままですが、アクセスできません。)

ただし、これは空のエージェントのみを起動します。実際に便利にするには、ssh-addを使用してキーをロック解除し(通常~/.ssh/id_*)、エージェントにロードして、sshまたはsftp接続でアクセスできるようにする必要があります


3
一度に複数のbashセッションでssh-agentを起動する方法はありますか?
Asim

9

さらに、セッションの開始時にいくつかのキーを追加することもできます。

~/.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セッションを停止するには ssh-agent -k

ssh-agentと.bashrcについて知っておくべきことは、あまり多くのキーをロードしないことです。sshデーモンのデフォルトの試行回数は6回に制限され/etc/ssh/sshd_configていMaxAuthTriesます。これは、この値で変更できます。


1
ssh-add「&」で起動するときの秘密鍵のパスワードはどうですか?秘密鍵ファイルは保護されていないと思いますか?
ルチアーノ

上記のコードはパスフレーズを2回要求します。1回はssh-agentが使用可能かどうかを確認するとき、もう1回は秘密鍵をロードするときです。
タパンチャンドラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.