AWS EC2 で AmazonLinux を OS として起動し、その上で Java アプリケーションを動作させ、ローカルPCから リモートデバッグをしようとしたのですが…。
ローカルPCからデバッグ用のポートを接続するために ssh の port forwarding を利用したところ、ウマク接続できませんでした。
1時間ほど悩んで、/etc/ssh/sshd_config に port forwarding の設定が無いのではないか…と思い付き、確認してみるとビンゴでした…。
以下のようになれば正解らしいです。
これで、ローカルPCの 9999 が、ssh 接続先の localhost:9999 と同じように利用できます。
なぜ AmazonLinux では ssh portforwarding がデフォルトでOFFなのか分かりませんが…。コレって sshd の標準設定なんでしたっけ???
AWS とはあんまり関係ありませんが、参考まで…。
ローカルPCからデバッグ用のポートを接続するために ssh の port forwarding を利用したところ、ウマク接続できませんでした。
1時間ほど悩んで、/etc/ssh/sshd_config に port forwarding の設定が無いのではないか…と思い付き、確認してみるとビンゴでした…。
以下のようになれば正解らしいです。
$ sudo cat /etc/ssh/sshd_config \設定したら、以下のように反映させます。
| fgrep -i AllowAgentForwarding
AllowAgentForwarding yes
ローカルPCから ssh port forwarding を有効にして ssh 接続するには、以下のようにします。$ sudo /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
$ ssh -L 9999:localhost:9999 -l ec2-user ~.amazonaws.comこの例では ローカルPC の ポート9999 を ssh 接続先サーバから見て localhost:9999 へ接続(port forwarding)します。ウマク設定出来ている場合、ローカルPC側のnetstat で以下のようになるはずです。この例は windows7のcygwin で実行しています。
上側が IPv4 で、下側が IPv6ですね…。$ netstat -avn | grep ':9999'
TCP 127.0.0.1:9999 0.0.0.0:0 LISTENING
TCP [::1]:9999 [::]:0 LISTENING
これで、ローカルPCの 9999 が、ssh 接続先の localhost:9999 と同じように利用できます。
なぜ AmazonLinux では ssh portforwarding がデフォルトでOFFなのか分かりませんが…。コレって sshd の標準設定なんでしたっけ???
AWS とはあんまり関係ありませんが、参考まで…。