SSHが/ etc / hostsを照会しないのはなぜですか?

SSHが/ etc / hostsを照会しないのはなぜですか?

私は、NISを介してユーザーを認証するネットワーク環境を管理しています。 1台のマシンを除くすべてのマシンをSSH経由でサーバーに接続するために使用できます。問題のコンピュータからメッセージが表示されます。

ssh: connect to host servername port 22: Connection refused

strace問題のあるコンピュータの出力を、サーバーに正しくSSHで接続できるコンピュータと比較しました。
サーバーにSSHで接続できないコンピューターはネゴシエートしません/etc/hostsが、SSHを介して正しく接続できるコンピューターはネゴシエートすることがわかりました。どちらのシステムも/etc/hostsサーバー名とIPに設定されています。最後に、問い合わせていないマシンは/etc/hosts最終的 127.0.0.1に(localhost)に接続しようとし、上記のメッセージで失敗します。原因は何ですか?

追加情報:

  • SSH経由でアクセスしようとしているサーバーもネームサーバーとして機能し、両方のコンピューターがSSH経由でアクセスしようとしたときにそのサーバーを参照します。
  • これにより、サーバーにSSH接続できないコンピューターが他のコンピューターに正しくSSH接続できます。
    ssh machinename
    ログには、straceコンピュータがネームサーバーを参照し(今回は正常に)、リモートコンピュータ名を正常に確認して接続したと表示されます。

編集:この問題を解決するのに役立つと思われる追加情報を提供します。

ベストアンサー1

私が見ると、問題のホストが正しく設定されていないようですnsswitch.conf

このhosts行は/etc/nsswitch.conf次のようになります。

hosts:  files nisplus nis dns

ただし、具体的な内容は環境によって異なります。ジョブホストと比較し、それに応じて変更する必要があります。

おすすめ記事