Skip to content

Instantly share code, notes, and snippets.

@mogproject
Last active August 31, 2015 06:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mogproject/1f1b8b23471d08ca957e to your computer and use it in GitHub Desktop.
Save mogproject/1f1b8b23471d08ca957e to your computer and use it in GitHub Desktop.
SSH Cheat Sheet

SSH キーペアの作成

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
  • プロンプトで変更前、変更後のパスフレーズを入力。(空にすればパスフレーズなしになる)

多段SSH

以下のような構成を例にする。

作業用マシン ---> 踏み台サーバ ---> 対象サーバ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
  • まず、全ての秘密鍵を作業用マシンのローカルに持ってくる

踏み台サーバへのログイン

1. コマンドライン

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_x -t -l user-x a.a.a.a

2. ~/.ssh/config に書く場合

Host server-a
  HostName a.a.a.a
  User user-a
  IdentityFile ~/.ssh/id_rsa_x
  IdentitiesOnly yes

対象サーバへのログイン

1. コマンドライン

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

2. ~/.ssh/config に書く場合

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment