2010-11-18

SSH ポートフォワードの失敗

Fedora 14 で SSH ポートフォワードを使おうとすると,
channel 2: open failed: administratively prohibited: open failed
と出力される. この原因はいろいろ考えられるが, いくつかをあげる.
  • sshd の設定で禁止されている.
  • SE Linux により禁止されている.
まずは /etc/ssh/sshd_config
AllowTcpForwarding yes
がかかれているかを確認. 私の環境では AllowTcpForwarding がコメントアウトされていたが, デフォルトは yes なので問題ない. /var/log/message をみると,
setroubleshoot: SELinux is preventing /usr/sbin/sshd "name_connect" access on <Unknown>. For complete SELinux messages. run sealert -l 1d8e1b1c-526e-4214-97be-98b8d48b5950
と出力されていた. メッセージのとおり, sealert -l 1d8e1b1c-526e-4214-97be-98b8d48b5950を実行すると,
アクセスを許可:
Confined processes can be configured to run requiring different access, SELinux
provides booleans to allow you to turn on/off access as needed. The boolean
sshd_forward_ports is set incorrectly.
Boolean Description:
allow sshd to forward port connections

Fix コマンド:
# setsebool -P sshd_forward_ports 1
と許可する方法を教えてもらえたので,
$ sudo setsebool -P sshd_forward_ports 1 
とコマンドをいれた. setsebool が終了するまで数秒かかったが, ポートフォワードを使用できるようになった.

追記: X11 forwarding のみ失敗する場合は, xauth がインストールされていないことが原因かもしれない. No xauth Program; Cannot Forward With Spoofing Error and Solution

0 件のコメント:

コメントを投稿