SSHはネットワーク上のホスト名をどのように見つけますか?

SSHはネットワーク上のホスト名をどのように見つけますか?

会社ネットワークにserverAというサーバーがありますが、サーバーに入力すると、そのssh serverAサーバーのエントリがない/etc/hostsにもかかわらず、別のPCがあったにもかかわらず、そのサーバーに自分のPCが接続されます。どのような設定が必要ですか?これは手動で/etc/hosts。もしそうなら、sshはネットワーク上のホスト名をどのように見つけ、それが有効であるかをどうやって確認しますか? (私が言及した両方のマシンはKubuntu Linuxを実行します。古いマシンは12.10を実行し、最新のマシンは13.04を実行します。)

私は以下を持っています/etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search mycompany.com

ポート53でリッスンするプロセス:

sudo ss -ulnp | grep 53
#UNCONN     0      0                         *:5353                     *:*      users:(("avahi-daemon",937,12))
#UNCONN     0      0                 127.0.1.1:53                       *:*      users:(("dnsmasq",1781,4))
#UNCONN     0      0                        :::5353                    :::*      users:(("avahi-daemon",937,13))

答え1

OpenSSH クライアントは標準を使用します。ドメイン名システムホスト名をIPアドレスに解決するオペレーティングシステムによって提供されるパーサ。

hostsで構成/etc/nsswitch.confホストの確認時に確認する項目と順序を設定します。

dns通常、ほとんどの照会は構成されたパーサーによって実行されます。/etc/resolv.conf。管理者に連絡して、nameserverホスト/etc/resolv.conf名/IPを設定してもらう必要があるかもしれません。あなたの場合、127.0.1.1はあなたのようです。動的DHCP IPアドレスがある場合、設定によってはこれが不可能になることがあります。

mdnsワーカーホストを有効にする理由がマルチキャストDNSの場合、新しいホストは別のサブネット上にあるか、名前をブロードキャストしない可能性があります。

答え2

これは、サーバーが構成したDNS検索ドメイン内にある場合に発生します。

たとえば、現在の検索ドメインは example.com です。

$ grep ^search /etc/resolv.conf
search example.com

これで、次の操作を透過的に実行できます。

$ ping foo.example.com
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C
$ ping foo
PING foo.example.com (127.0.0.1) 56(84) bytes of data.
^C

検索ドメインを使用すると、コンピュータ名と完全修飾ドメイン名(FQDN)の間で自動変換できます。

関連情報