こんにちは。シアワセですか? 笑顔でお仕事してますか?
ワタクシは元気です。牛丼は大盛りです。
概要
接続制限のある環境には ProxyJump と DynamicForward を使おう
ProxyJump
出尽くした感のあるサーバへの SSH 接続時の TIPS ですが、接続制限のある場合などの踏み台設定がより簡単になっています。
やっておくと便利なのでオススメです。
Host dest dest-via-ext
HostName ssh.example.net
User user
Port 22
Host *-via-ext
Protocol 2
ProxyJump doday
ProxyCommand ssh -W %h:%p doday
Host doday
HostName relay.example.com
Protocol 2
User user
TCPKeepAlive yes
IdentitiesOnly yes
ForwardAgent yes
DynamicForward localhost:5963
こんな設定しておけば、
$ ssh dest-via-ext
ってやれば踏み台サーバ(doday)経由で接続してくれます。
ProxyCommand ssh -W ...
でも十分シアワセなのですが、イマドキの ssh クライアントであれば ProxyJump という設定ができます。
とくにこれ、コマンドラインオプションである -J を用いて
$ ssh -J doday another-destination.example.org
とかその場で書けるので今まで以上に接続がカンタンにできるようになっております。超シアワセ
カンマ区切りで多段プロクシも乗り越えてくれる。弩シアワセ
ちなみに ProxyJump 定義を ProxyCommand 定義よりも先に書いておけば ProxyJump 定義が使用されます。
なお、踏み台サーバの sshd_config で AllowTcpForwarding=no
されているとダメです。
ProxyJump 定義も ProxyCommand 定義もこの設定では使用できませんので、なにか別なシアワセのカタチを見つける必要があります...
DynamicForward
踏み台を使うということは ウェブの確認なんかも制限されていることが多いので、
そんな場合には Chrome の Proxy SwitchyOmega というプラグインが便利です。
このプラグインを利用すれば、ウェブの確認が踏み台サーバ経由でできます。
詳しい設定方法は他のサイトさまにお任せするとして... こんな感じで...
Profile :: proxy > Proxy servers
Protocol: SOCKS5
Server: localhost
Port: 5963
Profile :: auto switch > Switch rules
Condition Type: Host wildcard
Condition Details: *.example.net
Profile: proxy
とかで登録します。
そのうえで画面上部のナビのところで auto switch
にしておけば、よりシアワセになれることでしょう。
この状態で Chrome から www.example.net にアクセスすると
先ほどの ssh_config の DynamicForward localhost:5963
の箇所が使われて踏み台経由となります。
このおまじないであなたのSSH接続は SOCKS proxy にもなりました。あらまぁなんとゆうことでしょう。
DynamicForward
設定は SOCKS プロトコルに対応していればいいので、
やんごとなき理由で FTP する場合などでも lftp とかがあればシアワセに暮らすことができます。
参照
-
man page ssh_config section 5
https://euske.github.io/openssh-jman/ssh_config.html -
OpenSSH/Cookbook/Proxies and Jump Hosts
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts -
Proxy SwitchyOmega
https://github.com/FelisCatus/SwitchyOmega
We're hiring!
AIチャットボットを開発しています。
ご興味ある方はWantedlyページからお気軽にご連絡ください!