web-dev-qa-db-ja.com

SSHリバーストンネルを介した特定のポートの転送

残念ながら、私は静的IPを使用できない場所に住んでいるため、マイクロAmazonec2インスタンスで実行されるリバースSSHトンネルを介して自宅のコンピューターへのアクセスを設定しています。 SSHは正常に機能しましたが、ポートフォワードがわかりません。

これは私が説明するのを助けるために作った小さなインフォグラフィックです(私がやろうとしていたことの図で質問がより明確になったと感じました。

図にリストされているコマンドは次のとおりです。

私は自宅のコンピューターで次のことをしています。

ssh -R 1337:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress

そして私はこれをec2サーバーで実行します:

ssh -L6600:localhost:6600 -Nf localhost -p 1337

diagram of my pain...in Paint AHHHHHH YEAHHHHHH!

参考までに、Amazon ec2のセキュリティグループにポート6600を追加したので、ec2側で開いています

5
Hortinstein

ここで2つの別々のsshコマンドを使用している理由がわかりませんか?自宅のマシンのポート6600ではなくEC2のポート6600を転送する場合は、次のことを行う必要があります。

ssh -R :6600:localhost:6600 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress

また、EC2インスタンスのsshd_configファイルでGatewayPortsオプションが有効になっていることを確認する必要があります。

明らかに、ポートフォワードが機能し続けるには、そのssh接続を開いたままにしておく必要がありますが、それ以外は問題はありません。

3
TomH

次の出力を提供していただけますか。

netstat -tulpen

ec2serveraddressに。両方のトンネルが127.0.0.1:PORTで始まっていることを期待していますか? 127.0.0.1はローカルマシン自体のIPであり、外部からはアクセスできません。つまり、サーバー自体からこのトンネルにアクセスできますが、他のマシンからはアクセスできません...

この場合は、/etc/ssh/sshd_configに以下を追加してください。

GatewayPorts yes

このオプションは0.0.0.0にポートを作成するので、どこからでも接続できます。 2つの接続されたトンネルを作成する他の理由がない場合は、もちろん1つだけに縮小できます。

ssh -R 6600:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress

これにより、ec2serveraddress:6600へのトンネルhome:22が作成されます。

2
binfalse