背景
4096ビットRSAキーペアを使用して、マイサーバーへのアクセスを認証します。ssh_config
私が参照しているファイル~/.ssh/config
と/etc/ssh/ssh_config
。
私の外観は次のとおりです~/.ssh/config
。
Host gg-root
HostName 172.47.95.122
Host ss-root
HostName 172.47.95.123
# Common for my servers
Host gg-root ss-root
User root
Port 32001
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_bull
# Common for all
Host *
AddKeysToAgent yes
これで、次のコマンドを使用してSSH経由でサーバーに接続できます(追加の構成は不要)。
ssh gg-root
ssh ss-root
問題は、~/.ssh/id_rsa_bull
他のアプリケーション(SFTPで使用するFileZillaなど)が簡単に使用できるように、システムのSSHエージェントに秘密鍵を追加する必要があることです。 (特にFileZillaに暗号化されていない秘密鍵が必要であることは気に入らないからです.ppk
。)
だから私は毎回このコマンドを実行します:
ssh-add ~/.ssh/id_rsa_pepper
またはこれを私の中に入れてください~/.profile
:
ssh-add ~/.ssh/id_rsa_pepper > /dev/null 2>&1
質問
システムにキーを追加するSSHエージェントを使用するときにssh-add
ファイルに書き込んだ宣言に従いますか?具体的にのみ使用されることをssh_config
保証しますか?~/.ssh/id_rsa_pepper
172.47.95.{122,123}
私が読んだ内容についての私の解釈によれば、そうすべきだと信じています。私が間違っている場合は、システムのSSHエージェントに秘密鍵を追加する方法を教えてください。ここで、秘密鍵は指定されたホストに固有のものですか?
編集:答えに基づいて
~/.ssh/config
今私の姿はこんな感じです。
Host gg-root
HostName 172.47.95.122
Host ss-root
HostName 172.47.95.123
# Common for my servers
Host gg-root ss-root
User root
Port 32001
IdentityFile ~/.ssh/id_rsa_bull
# Common for all
Host *
AddKeysToAgent yes
IdentitiesOnly yes
答え1
ssh-add
構成ファイルを尊重しません。エージェントにキーを追加するだけです。
クライアントは、ssh
またはに接続すると、設定のためにキーを使用しようとします。エージェントがキーを使用できる場合はそこで使用し、それ以外の場合はファイルで使用します(キーに関連付けられているパスワードがある場合はパスワードを入力する必要があります)。~/.ssh/id_rsa_bull
gg-root
ss-root
IdentityFile
プロキシのキーは、次に接続するときにも使用されます。他のホストIdentityFile
特定が設定されていません~/.ssh/config
。これは、構成が特定のホストを認証するために使用されるキーを制限しますが、表示される構成は、「ブルキー」が他のホストで使用されるのを防ぎません。