IT

多段SSHとDynamicForwardをconfigに書いて面倒なsshコマンドタイプに終結を

こんにちは,しまさん(@shimasan0x00)です.

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

SSHを使って外からWebアクセスをする方法[学内・社内限定のWebページをブラウザで見る]SSHを使って外からWebアクセスをする方法[学内・社内限定のWebページをブラウザで見る]について紹介しています.外部から内部にあるページを閲覧したいとき,単にSSHをして接続したい方向けです.Macメインで説明していますがWindowsでもやり方は同様です....

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

今回は分析サーバーで作業したいユーザーを想定します.

その場合ユーザーはまず踏み台サーバーに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を使います…

ABOUT ME
しまさん
高専→大学編入→大学院→? / 計算社会科学,ウェブマイニングなど / グレープフルーツと本が好き / SNS(Twitter,YouTube,Twitch)やVTuberのデータ分析屋 詳しいプロフィールはこちら≫ 投げ銭はコチラ