あるサーバで localhost に対して ssh したら ssh_exchange_identification: Connection closed by remote host エラーでログインできなかったので少し調べた。
/etc/hosts.allow, /etc/hosts.deny
まずこのファイルを疑う。
設定の仕方は http://www.turbolinux.co.jp/products/server/11s/user_guide/tcpwrapperconf.html を参照。
TCPWrappers とか inetd とかにまつわるこんな話も http://fg-180.katamayu.net/archives/2005/11/05/104105 要するに sshd は /etc/hosts.allow と /etc/hosts.deny を参照する、ということだけ知っていればこのケースでは問題ない。
tcpserver, tcprules(レアケース?)
/etc/hosts.allow, /etc/hosts.deny を適切に設定しても依然として ssh localhost が失敗することがある(俺が今回そうだった)。上にあげた http://fg-180.katamayu.net/archives/2005/11/05/104105 によると inetd のもとで動かしていない場合でも sshd デーモンは /etc/hosts.allow ファイルを参照する。にもかかわらず反映されないということは違うルールのもので起動されているはず、ということで(略)、要するに今回のサーバでは tcpserver で起動していた。
で、 /service/sshd ディレクトリをのぞいてみると allow とかいうファイルが置いてあり、 run スクリプトのなかで tcprules というプログラムを使っている。 The tcprules program を読んで、接続を許可する IP アドレス(今回は 127.0.0.1)を allow ファイルに追加して sshd を再起動。 svc -t /service/sshd で、 ssh localhost が無事成功した。
ちなみに
なんで localhost に ssh したかったのかというと、 http://hadoop.apache.org/core/docs/current/quickstart.html#PseudoDistributed にそう書いてあったから。
- 作者: Daniel J. Barrett,Richard E. Silverman,Robert G. Byrnes,小島肇,坂井順行,鹿田幸治,園田道夫,高橋基信,根津研介,宮本久仁男
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/11/22
- メディア: 大型本
- 購入: 2人 クリック: 79回
- この商品を含むブログ (48件) を見る