作業を完了するには、職場で複数のサーバーにログインする必要があります。アクセスしようとしているサーバーのFQDNを入力するのに疲れました。私たちのプライベートネットワークでSSH経由でログイン/アウトしています。私はそれが私たち自身のプライベートネットワークにあると99%確信しています。 b / cすべてのサーバーのIPアドレスは10.xyzです。ドメイン名の代わりにホスト名のみを使用してサーバーにSSHとして接続する方法はありますか?
私たちは複数の国にサーバーを持っています。私たちのサーバー命名方式は非常に長いです。次のように名前が付けられます。
hostname.country.domainname.com
手首トンネルができますね。
ssh [email protected]
...私たちのサーバーの1つにアクセスするたびに。アメリカにいてアメリカにいる他のホストにアクセスしようとすると、入力するだけでうまくssh me@hostname2
接続されます。しかし、アメリカにいて英国のサーバーに接続しようとすると。ssh [email protected]
hostname3
私が行った回避策は、~/.ssh/configファイルで特定のサーバーのエイリアスを設定することでした。しかし、このファイルに1000を超えるサーバーを追加することは可能ではないと思います。私は20を超えるサーバーを追加し、同僚は私が狂ったと思います。彼らはsshの周りにFQDNを入力することに狂ったと思っています。
毎回domainname.comを入力する必要がないように設定する簡単な方法はありますか?
答え1
%h
構成にワイルドカードを使用できます。
例えば
Host *.eng
Hostname %h.domainname.com
これでこれを行うと、にssh foo.eng
接続しようとしますfoo.eng.domainname.com
。
この設定にユーザー名を強制するなどの他のオプションを追加することもできます。
Host *.eng
Hostname %h.domainname.com
User me
これでこれを行うと、ユーザーとして接続しようとしますssh foo.eng
。foo.eng.domainname.com
me
% ssh foo.eng
ssh: Could not resolve hostname foo.eng.domainname.com: Name or service not known
(まあ、有効なホスト名ではない前にエラーが発生したようです!)
したがって、国ごとに1つのルールしか必要ありません。
答え2
CanonicalDomains
SSH設定でこのオプションを使用できます。
domainname.com
SSH設定ファイルに以下を追加すると、SSHは名前に最大1つのドットを含むホストに接続しようとします。
CanonicalizeHostname yes
CanonicalDomains domainname.com
この設定を使用すると、最初に試してからssh foo.eng
ホストが見つからない場合に置き換えfoo.eng.domainname.com
られます。foo.eng
もう一度言いますが、これがssh github.com
最初に試みられるため、github.com.domainname.com
GitHubに接続したい場合は、DNSサーバーは存在しないホストのレコードを返すべきではありません。
CanonicalizeMaxDots
sshは、ホスト名が完全であると見なし、追加しない前にホスト名に表示できる点数を制御するために使用できますdomainname.com
。デフォルトは1で、現在のシナリオを考慮すると十分ですが、同様の状況が発生した場合はhostname.city.country
増やす必要があります。
答え3
追加すると
search domainname.com
/etc/resolv.conf
、および使用(hostname.country
およびssh
その問題に対する他のWebプログラム)は自動的にdomainname.com
1を追加します。
search
異なる2つの国の2つのサーバーが同じホスト名を共有している場合、予期しない動作が発生する可能性があるため、パスに別の国のドメインを追加するのは良い考えではないと思います。
私はこの方法がどのプログラム(VNC、...)を使用しても問題を解決できるssh
ので、設定を変更するよりも優れていると思います。hostname.country
telnet
バラよりresolv.conf(5)
独自に解析domainname.com
できない場合は、1がより正確に追加されます。hostname.country
2この場合、hostname
ルートはドメインが最初にリストされている国のサーバーとして解決されますsearch
。