Ich muss mich bei der Arbeit bei mehreren Servern anmelden, um meine Arbeit erledigen zu können. Ich habe es satt, den FQDN eines Servers einzugeben, auf den zugegriffen werden soll. Ich logge mich über ssh in unserem eigenen privaten Netzwerk ein / aus. Ich bin zu 99% sicher, dass es sich in unserem eigenen privaten Netzwerk befindet. Alle Server haben die IP-Adresse 10.xyz. Gibt es eine Möglichkeit, auf Server mit nur dem Hostnamen und nicht mit dem Domänennamen zu ssh?
Wir haben Server in mehreren Ländern. Die Art und Weise, wie unsere Server benannt werden, ist sehr lang. Es heißt wie folgt:
hostname.country.domainname.com
Ich bekomme Karpaltunnel tippen
ssh [email protected]
... jedes Mal, wenn ich auf einen unserer Server zugreife. Wenn ich in den USA bin und versuche, auf einen anderen Host in den USA zuzugreifen, kann ich einfach tippen ssh me@hostname2
und eine gute Verbindung herstellen. Wenn ich jedoch in den USA bin und versuche, eine Verbindung zu einem Server in England herzustellen, kann ich nicht tippen ssh [email protected]
und eine Verbindung herstellen hostname3
.
Die Problemumgehung bestand darin, einen Alias in meiner Datei ~ / .ssh / config für einige der Server einzurichten. Ich halte es jedoch nicht für möglich, dieser Datei mehr als 1000 Server hinzuzufügen. Ich habe bereits mehr als 20 Server hinzugefügt und meine Kollegen halten mich für verrückt, obwohl ich denke, dass sie verrückt sind, wenn sie den FQDN beim Herumtippen eingeben.
Gibt es eine einfache Möglichkeit für uns, etwas einzurichten, damit wir nicht jedes Mal unseren Domainnamen.com eingeben müssen?
quelle
$HOME/.ssh/config
oder Sie können es systemweit machen in/etc/ssh/ssh_config
user@*.eng
?ssh [email protected]
und es wird wie erwartet funktionieren. Dazu müssen Sie lediglich die Hostnamenkomponente neu schreiben. Es wird auch mit arbeitenscp
undsftp
und so weiter.Wenn Sie hinzufügen
zu
/etc/resolv.conf
und die Nutzunghostname.country
,ssh
(und andere Netzwerk - Programme, für diese Angelegenheit) automatisch appenddomainname.com
für Sie 1 .Ich halte es nicht für
search
eine gute Idee , die verschiedenen Länderdomänen zu Ihrem Pfad hinzuzufügen, da Sie möglicherweise unerwartetes Verhalten erhalten, wenn zwei Server in zwei verschiedenen Ländern denselben Hostnamen 2 verwendenIch glaube, diese Methode ist besser als das Ändern der
ssh
Konfiguration, da dies einehostname.country
Auflösung unabhängig vom verwendeten Programm (telnet
, VNC, ...) ermöglicht.Sehen
resolv.conf(5)
1 Genauer gesagt wird es angehängt,
domainname.com
wenn es nichthostname.country
von selbst aufgelöst werden kann.2 In einem solchen Szenario
hostname
wird der Server in dem Land aufgelöst, dessen Domäne zuerst imsearch
Pfad aufgeführt ist.quelle
man resolv.conf
Sie können die
CanonicalDomains
Option in Ihrer SSH-Konfiguration verwenden.Wenn Sie Ihrer ssh-Konfigurationsdatei Folgendes hinzufügen, versucht ssh,
domainname.com
an jeden Host anzuhängen , dessen Name höchstens 1 Punkt enthält:Mit dieser Konfiguration
ssh foo.eng
wird zunächst versuchtfoo.eng.domainname.com
, auffoo.eng
den Host zurückzugreifen , wenn dieser nicht gefunden werden kann. Ebensossh github.com
wird zunächst versuchengithub.com.domainname.com
, wenn Sie also auf GitHub anschließen möchten, sollten Sie Ihre DNS - Server nicht zurückgeben Datensätze für nicht vorhandenen Hosts.Mit
CanonicalizeMaxDots
kann gesteuert werden, wie viele Punkte im Hostnamen angezeigt werden können, bevor ssh ihn für vollständig qualifiziert hält und nicht anhängtdomainname.com
. Der Standardwert ist 1, was für Sie angesichts des aktuellen Schemas ausreichen sollte. Wenn Sie jedoch jemals zu so etwas kommen, müssenhostname.city.country
Sie es erhöhen.quelle