SSHポート転送


8

パブリックアクセス可能なサーバー(パブリック)を介してNATの背後にある自分のコンピューター(ローカル)に接続したい。

ローカル:

ssh -g -R 8000:localhost:22 user@public

その後、公開:

ssh -p 8000 user@public 

しかし、私は得ています error: Connection refused.

公開サーバーにログインすると、次の方法でトンネルが機能していることを確認できます。

ssh -p 8000 localhost

ローカルコンピュータでsshを開きます。

公開サーバーが透過プロキシとして機能する必要があるのではないかと思っていますか?またはそれをそのように機能させる方法。

回答:


11

SSHリモートポート転送は、セキュリティ上の理由から、デフォルトでlocalhost / loopbackにバインドされます。他のホストに転送ポートへのアクセスを許可することは、多くの場合好ましくありません。

この動作をオーバーライドするには、次の2つのことを行う必要があります。

  • GatewayPortsサーバーでオプションを有効にします。
  • *クライアントでバインドアドレスを指定するか、すべてのアドレスにバインドします。

    ssh -R \*:8000:localhost:22 user@public
    

アスタリスクをエスケープして、シェルがそれを展開しないようにします。


0

これは、リモートコンピュータパブリックの設定の問題のように見えます。デフォルトでは、openssh sshd(私が使用しているものと思われます)の設定であるGatewayPortsがnoになり、リモートポート転送がローカルホストでのみリッスンするように強制されます。

解決策は、/ etc / ssh / sshd_config(または同等のもの)を編集して、GatewayPortsをyesまたはclientspecifiedに設定することです。後者を選択した場合は、代わりにトンネル要求を-R *:8000:localhost:22のようなものに変更する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.