Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@tats-u

OpenSSHのProxyJump(-J)オプション(多段SSH/踏み台用)は主要OSで使える、この用途でのProxyCommandオプションは捨てよう

TL;DR

  • 多段SSHする場合はProxyJumpコマンドで統一してOK
  • この用途においてProxyCommandオプションはもはや過去の産物
  • 指示書やガイドなどを作成している場合は修正しましょう

多段SSHについてざっくり

インターネットからはアクセスできないLAN内のホストにSSHしたい場合に、LANとインターネットの両方に所属しているホスト(踏み台)を経由することで接続できます。踏み台には、ターゲットホスト同様OpenSSHサーバさえインストールされていればOKです。
さらに、自PC→インターネット→踏み台1→LAN1→踏み台2→LAN2→・・・→踏み台N→LAN N→ターゲット のように多段にすることもできます。

ProxyJumpオプションについて

OpenSSH 7.3から利用可能です。
ただしWindowsでは、バグのせいで8.0から利用可能です。

具体的には、

  • Windows10→21H1から
  • Ubuntu→17.04から
  • macOS→10.12 Sierraから
  • CentOS・RHEL→7から

です。POSIX系は2017年あたりから、今では腐敗臭のするバージョン(Ubuntu 18.04・CentOS/RHEL7)含めて対応していましたが、Windowsではつい最近まで対応していませんでした。
本来は20H2のタイミングで対応するはずでしたが、MSの人がOpenSSHの更新をサボっていたのでお預けになっていました。(どうしてもという人は、Chocolatey等を使って最新版を入れなければなりませんでした)
この度の21H1にて、OpenSSHが更新され、ついに他OSに追いつきました。

使い方は、以下のように、踏み台・ターゲットのホストへの接続設定を定義した後、ターゲット側の設定にProxyJump 【踏み台ホスト名】を加えます。

Host 【踏み台ホスト名】
IdentityFile 【秘密鍵へのパス、他のオプションも同様に指定】
Host 【ターゲットのホスト名】
IdentityFile 【秘密鍵へのパス、他の一般オプションも同じように指定】
ProxyJump 【踏み台ホスト名】

コマンドでは、ssh 【ターゲット】 -J 【踏み台】のように指定します。

従来の方法

従来はProxyCommandオプションを使います。ProxyJump 【踏み台】は、

ProxyCommand ssh -W %h:%p 【踏み台】

と同様です。コマンドでは専用のオプションがないため、

ssh -oProxyCommand='ssh -W %h:%p 【踏み台】' 【ターゲット】

と書かざるを得ませんでした。冗長ですね。ProxyCommandは今後SSH以外の方法でSSH通信を中継しなければならない時だけに用途が縮小します。

指示書やガイドへの影響

SSHに詳しくない人のために説明を書く場合、従来はProxyCommandを使った方法を最低でも併記しなければなりませんでした。
しかし、Windowsが公式対応したため、ProxyCommandには触れず、ProxyJumpだけ書けばよくなりました。
指示書やガイドを管理している場合、ぜひとも修正しましょう。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What is going on with this article?