最近、現場にポートフォワーディング駆使しまくっている人がいて色々勉強させてもらってます
タイトル文だけ見ると意味不明かなと思うので図をみてね
以下のような環境の場合
・作業PCから開発環境、本番環境へアクセスできるけど、開発環境→本番環境、その逆はできない
・開発環境のサーバA、本番環境のサーバBへアクセスするためには、踏み台サーバからアクセスする必要がある
・作業PCにはWindows Subsystem on LinuxやCygwinなどのLinuxエミュレートアプリをインストールしている(または、そもそも作業PCがLinux)
こういった環境だと、ファイルをscpしたいのにってなったときとか、一旦作業PCにコピーしてきて、それを送るとかだったり。
直接つながってれば、便利なことっていろいろあると思うね。
作業PCの.ssh/configを以下のように書く
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
###開発環境 Host kaihatu_humdai Hostname <開発環境踏み台サーバのIPアドレス> Host kaihatu_A Hostname <開発環境サーバAのIPアドレス> LocalForward 10022 <localhost>:22 ProxyCommand ssh -W %h:%p kaihatu_humdai ###本番環境 Host honban_humdai Hostname <本番環境踏み台サーバのIPアドレス> Host honban_A Hostname <本番環境サーバBのIPアドレス> RemoteForward 10022 <localhost>:10022 ProxyCommand ssh -W %h:%p honban_humdai |
sshコマンドでそれぞれの環境へ接続
fNオプションはバックグラウンド実行
1 2 |
# ssh -fN kaihatu_A # ssh -fN honban_A |
本番環境サーバサーバBから開発環境サーバAにsshしてみるといけるはず
1 |
ssh localhost -p 10022 |