BLOGTIMES
2013/04/01

ssh でリモートフォワード (-R) したポートを他のマシンからアクセスできるようにする

  ssh 
このエントリーをはてなブックマークに追加

ssh でローカルフォワード (-L) したポートを他のマシンからもアクセスできるようにするには、-g オプションをつけてやればいいわけですが、リモートフォワード (-R) したポートを他のマシンからアクセスできるようにするには sshd_config の設定を変更する必要があった*1のでメモ。

結論から述べると、sshd 側の設定ファイルにある GatewayPorts を下記のように変更する必要があります*2

/etc/ssh/sshd_config

.... # 接続時に指定されたアドレスをバインドする場合 GatewayPorts clientspecified # 無条件に全てのアドレスをバインドする場合 GatewayPorts yes ....

この設定を反映させた状態で例えば下記のようなポートフォワードを行うと localhost:10443 のサービスが、 example.jp:8443 から使えるようになります。

ssh -t -N -R192.168.1.1:8443:localhost:10443 user@example.jp

以下、設定メモ。

GatewayPorts no の場合はどうなるか

GatewayPorts のデフォルト値は no ですが、この状態だとインターフェイスの指定(前述の例だと192.168.1.1)の指定に関わらず、ループバックアドレス(127.0.0.1:8443, ::1:8443)がバインドされてしまい、この状態では他のホストからはアクセスできません。

$ netstat -nlp | grep 8443 tcp 0 0 127.0.0.1:8443 0.0.0.0:* LISTEN 23468/sshd tcp 0 0 ::1:8443 :::* LISTEN 23468/sshd

GatewayPorts が clientspecified の場合には下記のように指定したIPのみがバインドされます。

$ netstat -nlp | grep 8443 tcp 0 0 192.168.1.109:8443 0.0.0.0:* LISTEN 23482/sshd

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/5699
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
su3 (2013/04/15 11:31) <%HatenaAuth()%>

助かりました。ありがとう!

Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン