会社ネットワークに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)の間で自動変換できます。