こんにちは,しまさん(@shimasan0x00)です.
以前SSHかつダイナミックフォワード(-Dオプション)を使用することで組織内部のネットワークでしか閲覧できないサイトなどにアクセスする方法を紹介しました.

今回は以下のような中継サーバーを経由しなくてはいけないネットワークの構成を考えていきます.

今回は分析サーバーで作業したいユーザーを想定します.
その場合ユーザーはまず踏み台サーバーにSSHでアクセスします.
その後踏み台サーバーからSSHして分析サーバーにアクセスをします.
これ,コマンドを打ってsshする場合2回sshコマンド叩かなくてはいけなくて面倒ですよね.
また,先程のダイナミックフォワードも-Dとか毎回設定するのも面倒ですよね.
ということで今回はそれらの操作を.ssh/configに書いてしまって楽をしようぜ!って記事です.
参考文献
ここではLocalForward (ローカル→リモート転送)の方法と多段SSHについてまとめられています.
SSHについて知りたいときはこのサイトに非常にお世話になっています.
SSHで困ったらココ
スポンサーリンク
多段SSH
多段SSHはA (SSH)-> B (SSH)->Cとする場合にssh C
で済ませたいよって方にはぴったりです.
Host shost1
HostName a.b.com
User user1
port 8888(なくてもよい)
IdentityFile .ssh/id_rsa_1
Host shost2
HostName b.c.com
User user2
IdentityFile .ssh/id_rsa_2
ProxyCommand ssh -CW %h:%p shost1
スポンサーリンク
多段SSH+DynamicForward
多段SSHはA (SSH)-> B (SSH)->Cとする場合かつ,BとCが所属するネットワークのコンテンツにアクセスしたい場合にはぴったりです.
ssh dhost2
configに以下を書きます.
Host dhost1
HostName a.b.com
User user1
port 8888(なくてもよい)
IdentityFile .ssh/id_rsa_1
Host dhost2
HostName b.c.com
User user2
IdentityFile .ssh/id_rsa_2
ProxyCommand ssh -CW %h:%p dhost1
DynamicForward 8888(任意)
設定したらDynamicForwardで設定しているポート番号で以前紹介した拡張機能を用いればOKです.
※公開鍵をB,Cに用意している場合なので注意してください
多段SSHで嬉しいこと
例えば自宅にいながら分析サーバーの環境でVSCode使いたいってなったことありませんか??
最近Remote Developmentという拡張機能があるようです.
VSCode一つで全てがまかなえる世界って素晴らしいですね.
私はVSCodeでJupyterNotebookを触るのがまだ… なのでDynamicForwardを使ってJupyterLabを使います…