web-dev-qa-db-ja.com

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

Sshキーは初めてです。誰でもssh-agent bashおよびssh-add機能しますか?

今後、その内部を理解する必要があります。

31
maneeshshetty

agentは、キーをメモリに保持して、ロックを解除するだけでよいようにするプログラムです1回、毎回ではなく。 ssh-agentはSSHキーに対してこれを行います。

startingssh-agentの通常の方法は次のとおりです。

  • eval `ssh-agent` –これはエージェントをバックグラウンドで実行し、currentShellインスタンスに適切な環境変数を設定します。

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

  • exec ssh-agent bashbashシェルのnewインスタンスを開始し、現在のシェルを置き換えます。

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

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

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

46
user1686

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

~/.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に制限されています。これは、MaxAuthTries値を使用して/etc/ssh/sshd_configで変更できます。

9
user1293603