はじめに
多段 SSH の設定方法はググればたくさんでてきますが,「踏み台に秘密鍵を持つ」パターンの情報が少なくて躓いたので,今後のためにメモしておきます。
Special Thanks: @chitoku
ローカルに持つ場合
通常はこちらの方法が望ましいです。
[A] ----> [B] ----> [C]
|
"~/.ssh/id_rsa_for_B"
"~/.ssh/id_rsa_for_C"
Host B
Hostname B.example.com
User user_b
IdentityFile ~/.ssh/id_rsa_for_B
Host C
Hostname C.example.com
User user_c
IdentityFile ~/.ssh/id_rsa_for_C
ProxyJump B
参考: linux - SSH from A through B to C, using private key on A - Server Fault
踏み台に持つ場合
秘密鍵の漏洩リスクがあるためあまり推奨されませんが,踏み台の秘密鍵を全ユーザで共有している場合などには有効です。
[A] ----> [B] ----> [C]
| |
| "~/.ssh/id_rsa_for_C"
|
"~/.ssh/id_rsa_for_B"
Host B
Hostname B.example.com
User user_b
IdentityFile ~/.ssh/id_rsa_for_B
Host C
Hostname C.example.com
User user_c
ProxyCommand ssh -o 'ForwardAgent yes' B 'ssh-add ~/.ssh/id_rsa_for_C && nc %h %p'
参考: linux - SSH from A through B to C, using private key on B - Server Fault