AWS EC2 で AmazonLinux を OS として起動し、その上で Java アプリケーションを動作させ、ローカルPCから リモートデバッグをしようとしたのですが…。
ローカルPCからデバッグ用のポートを接続するために ssh の port forwarding を利用したところ、ウマク接続できませんでした。

1時間ほど悩んで、/etc/ssh/sshd_config に port forwarding の設定が無いのではないか…と思い付き、確認してみるとビンゴでした…。

以下のようになれば正解らしいです。
$ sudo cat /etc/ssh/sshd_config  \
     | fgrep -i AllowAgentForwarding

AllowAgentForwarding yes
設定したら、以下のように反映させます。
$ sudo /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
ローカルPCから ssh port forwarding を有効にして ssh 接続するには、以下のようにします。
$ ssh -L 9999:localhost:9999 -l ec2-user  ~.amazonaws.com
この例では ローカルPC の ポート9999 を ssh 接続先サーバから見て localhost:9999 へ接続(port forwarding)します。ウマク設定出来ている場合、ローカルPC側のnetstat で以下のようになるはずです。この例は windows7のcygwin で実行しています。
$ netstat -avn | grep ':9999'
  TCP    127.0.0.1:9999         0.0.0.0:0              LISTENING
  TCP    [::1]:9999             [::]:0                 LISTENING
上側が IPv4 で、下側が IPv6ですね…。

これで、ローカルPCの 9999 が、ssh 接続先の localhost:9999 と同じように利用できます。


なぜ AmazonLinux では ssh portforwarding がデフォルトでOFFなのか分かりませんが…。コレって sshd の標準設定なんでしたっけ???

AWS とはあんまり関係ありませんが、参考まで…。