SSH チートシート
たまに使うけど忘れがちなコマンド & tips についてメモ。
ssh-keygen -t rsa -f ~/.ssh/your_key_name -C 'yourname@example.com'
- パスフレーズはプロンプトから入力
これで
~/.ssh/your_key_name
(秘密鍵)~/.ssh/your_key_name.pub
(公開鍵)
が作成される
ssh-keygen -y -f ~/.ssh/your_key_name
- 標準出力に出るので、必要に応じてファイルにリダイレクト
ssh-keygen -p -f ~/.ssh/your_key_name
- プロンプトで変更前、変更後のパスフレーズを入力。(空にすればパスフレーズなしになる)
以下のような構成を例にする。
作業用マシン ---> 踏み台サーバ ---> 対象サーバ1
`-------------------> 対象サーバ2
識別名 server-a server-b server-c
IPアドレス a.a.a.a b.b.b.b c.c.c.c
ログインユーザ user-x user-y user-y
SSH鍵 ~/.ssh/id_rsa_x ~/.ssh/id_rsa_y ~/.ssh/id_rsa_y
- まず、全ての秘密鍵を作業用マシンのローカルに持ってくる
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_x -t -l user-x a.a.a.a
Host server-a
HostName a.a.a.a
User user-a
IdentityFile ~/.ssh/id_rsa_x
IdentitiesOnly yes
ssh -o ProxyCommand='ssh -W %h:%p -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_x -t -l user-x a.a.a.a' -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_y -t -l user-y b.b.b.b
ssh -o ProxyCommand='ssh -W %h:%p -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_x -t -l user-x a.a.a.a' -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_y -t -l user-y c.c.c.c
Host server-b server-c
User user-y
IdentityFile ~/.ssh/id_rsa_y
ProxyCommand ssh -W %h:%p server-a
IdentitiesOnly yes
Host server-b
HostName b.b.b.b
Host server-c
HostName c.c.c.c