ssh
ターミナルコマンドを使用してUbuntuデバイスに接続しようとすると、.local
サフィックスをUbuntuホスト名に追加する必要があります。たとえば、ホスト名を使用してデバイスにsshする場合、sshコマンドには.local
サフィックスが必要で、コマンドの形式は次のとおりです。
ssh username@device_hostname.local
.local
接尾辞がavahi(zeroconf)Linuxサービスによって追加されたことを知っていますが、それをバイパスするための簡単な(簡単な)方法はありますか?次のように、コマンドの最後に.localサフィックスを付けずにホスト名のみでデバイスを「ssh」できるようにしたいと思います。
ssh username@device_hostname
正確に達成したいのは、ホスト名から.local
サフィックスを完全に削除することです。プライベートDNSサーバーの実行について読んだことがありますが、それほど複雑でないソリューションがあるかどうか知りたいです。
クライアントには、ホスト名をIPアドレスに解決するための少なくとも1つの方法が必要です。すでに発見したメカニズムは、自動構成によって機能し、.local
ドメイン名内で発生します。
すべてのクライアントでホスト名からIPアドレスへのマッピングを定義できますが、これは推奨される方法ではありません。
have何らかの種類の自動名前解決メカニズムを実行する必要があります。これらのメカニズムはすべて、バックグラウンドで何らかの種類のドメイン名を使用する必要があります。
ただし、次のいずれかを実行することにより、毎回ドメイン名を入力する必要がなくなります。
以下を/etc/ssh_config
または~/.ssh/config
に入れた場合:
Host *
CanonicalDomains local
CanonicalizeHostname yes
sshは、任意のホスト名にlocalを自動的に追加します。したがって、ssh Host
と入力すると、実際にssh Host.local
が実行されます。
上記はsshに対してのみ機能しますが、クライアントのDNSリゾルバーを適宜設定することにより、すべてのネットワーク接続に対して同様の設定を行うこともできます。これは、ホスト名のショートカットを持つ「古典的な」方法です。
使用しているセットアップに応じて、local
を検索ドメインのリストに追加します。これが私がすることです。これについては多くの説明があるはずです like this 。
最初は単純に思えますが、すぐに維持するのが難しくなるため、これはまったくお勧めしません。しかし、ドメイン名を完全に取り除くことができるのは私に知られている唯一の方法です。
ファイル/etc/hosts
を編集し、次のような行を追加します。
192.168.1.3 Host3
192.168.1.4 Host4
各行の最初のワードは、対応するホストのIPアドレスです。すべてのクライアントでそれを行う必要があります。その後、ssh Host3
を使用できます。バックグラウンドでもドメイン名は使用されません。