たろ
踏み台サーバーを経由して一気にプライベート空間のサーバーにSSHってできるの?
こんな疑問にお答えします。
本記事の内容
- 踏み台サーバーを経由してSSHする方法の紹介
- .ssh/config への書き方
- ProxyCommand のポイント
.ssh/config への記述方法は下記の記事が参考になります。
参考:【SSH】.ssh/config にサーバー情報を設定して簡単SSH
踏み台サーバーを経由したSSHのイメージ
下の画像のようなネットワーク構成を仮定します。
SSH①で踏み台サーバーにSSHし、SSH②で踏み台サーバーからWebサーバーへSSHするといった流れで2回SSHをする作業が入りとても面倒です。
SSH①の手間を省き一気にWebサーバーまでSSHできるようにすることが本記事のゴールです。
具体的には次のようなイメージです。
SSH③で一気にWebサーバーまでSSHします。
.ssh/configにSSHを定義する
.ssh/config にSSHのルールを定義します。
具体的には下記の通り。
Host humidai_server
Hostname 123.45.678.112
User ubuntu
Port 22
IdentityFile /path/to/keyfile
TCPKeepAlive yes
Host web_server
Hostname 10.0.12.345
User centos
IdentityFile /path/to/keyfile //ローカルPCのキーを参照
ProxyCommand ssh humidai_server -W %h:%p
ポイントは ProxyCommand ssh humidai_server -W %h:%p を書くことです。
%hは踏み台サーバーに、%pはポートに置換され、踏み台サーバーを経由したSSHが実現されます。
SSHする際は下記のようにターミナルでSSHを実行します。
ssh web_server
例えば、ローカルPCからウェブサーバーまでscpコマンドでファイルを一気にコピーするといったことも可能になります。
まとめ
- 踏み台サーバーを経由したSSHのやり方を紹介しました。
- .ssh/config への記述方法を紹介しました。
おまけ:VS Codeで直接ウェブサーバーへSSHアクセス
踏み台サーバーを経由したSSHができるとVS Codeで直接サーバー上のファイルを編集できるようになります。
これが本当に便利です!!!
VS Codeを使ったSSHの方法は下記の記事で紹介しています。