.ssh/configの書き方メモ

はじめに

今回やりたかったのは、sshで踏み台サーバーからでないとログインできないサーバーでの作業をemacsで行うということでした。

以前やったときにはemacsのinit.elにて多段接続する記述を入れていたのですが、.ssh/configに今回の記述を書いておけばsshコマンドでも簡単にログインできるので今回の形にしました

サーバー接続

ターミナルからssh

ssh serverA

emacs

M-x /ssh:serverA:/

~/.ssh/config

パスワードでログイン
Host serverA                             # 好きな名前
  HostName 100.xxx.yyy.zzz    # 接続先IP
  Port 22                                     # ポート番号
  User username                        # ログインユーザー名
鍵認証でログイン
Host serverA                             # 好きな名前
  HostName 100.xxx.yyy.zzz    # 接続先IP
  Port 22                                     # ポート番号
  User username                        # ログインユーザー名
  IdentityFile ~/.ssh/serverA.pem # 鍵ファイル
踏み台サーバーを経由して別サーバーへログイン

サーバーAへログインしてサーバーBへログイン
鍵認証の場合はIdentityFileを追加でこのファイルはローカルPCにおいてある想定です

# サーバーA(踏み台サーバー)
Host serverA
  HostName 100.xxx.yyy.zzz
  Port 22
  User username
  IdentityFile ~/.ssh/serverA.pem # 鍵認証の場合

# サーバーB
Host serverB
  HostName 200.xxx.yyy.zzz
  Port 22
  User username
  IdentityFile ~/.ssh/serverB.pem # 鍵認証の場合
  ProxyCommand ssh serverA -W %h:%p
多段でssh接続する

サーバAに接続してサーバーBに接続してサーバーCに接続する。
後は多段が4段・5段・・・となっても同じ

# サーバーA
Host serverA
  HostName 100.xxx.yyy.zzz
  Port 22
  User username

# サーバーB
Host serverB
  HostName 200.xxx.yyy.zzz
  Port 22
  ProxyCommand ssh serverA -W %h:%p

# サーバーC
Host serverC
  HostName 300.xxx.yyy.zzz
  Port 22
  ProxyCommand ssh serverB -W %h:%p

以上です