Muszę zalogować się do wielu serwerów w pracy, aby wykonać swoją pracę. Mam już dość wpisywania nazwy FQDN serwera, aby uzyskać dostęp. Loguję się / wylogowuję przez ssh w naszej prywatnej sieci. Jestem 99% pewien, że jest w naszej prywatnej sieci b / c wszystkie serwery mają adres IP addr 10.xyz Czy istnieje sposób na ssh na serwery z samą nazwą hosta, a nie nazwą domeny?
Mamy serwery w wielu krajach. Nazwa naszych serwerów jest bardzo długa. Nazwa jest następująca:
hostname.country.domainname.com
Dostaję wpisywanie tunelu nadgarstka
ssh [email protected]
... za każdym razem, gdy uzyskuję dostęp do jednego z naszych serwerów. Jeśli jestem w USA i próbuję uzyskać dostęp do innego hosta w USA, mogę po prostu pisać ssh me@hostname2
i łączyć się poprawnie. Jednak jeśli jestem w USA i próbuję połączyć się z serwerem w Anglii, nie mogę pisać ssh [email protected]
i łączyć się z hostname3
.
Obejściem tego problemu było ustawienie aliasu w moim pliku ~ / .ssh / config dla niektórych serwerów. Jednak nie sądzę, aby dodanie ponad 1000 serwerów do tego pliku było wykonalne. Dodałem już ponad 20 serwerów i moi współpracownicy myślą, że oszalałem, chociaż myślę, że oszaleli na punkcie wpisywania nazwy FQDN podczas sshingowania.
Czy istnieje prosty sposób, aby skonfigurować coś, abyśmy nie musieli wpisywać nazwy domeny.com za każdym razem?
źródło
$HOME/.ssh/config
lub możesz zrobić to/etc/ssh/ssh_config
user@*.eng
?ssh [email protected]
i będzie działać zgodnie z oczekiwaniami. Wszystko to polega na przepisaniu komponentu nazwy hosta. To będzie jeszcze pracowaćscp
, asftp
i tak dalej.Jeśli dodasz
do
/etc/resolv.conf
i użytkowaniahostname.country
,ssh
(i inne programy sieciowe, dla tej sprawy) automatycznie dodadomainname.com
ci 1 .Nie sądzę, aby dodanie do
search
ścieżki różnych domen kraju było dobrym pomysłem, ponieważ może się pojawić nieoczekiwane zachowanie, jeśli dwa serwery w dwóch różnych krajach mają tę samą nazwę hosta 2Uważam, że ta metoda jest lepsza niż zmiana
ssh
konfiguracji, ponieważ pozwalahostname.country
to rozwiązać niezależnie od używanego programu (telnet
, VNC, ...).Widzieć
resolv.conf(5)
1 Dokładniej, doda się,
domainname.com
jeśli nie będzie w stanie rozwiązaćhostname.country
samodzielnie.2 W takim scenariuszu
hostname
nastąpi rozwiązanie do serwera w kraju, którego domena jest wymieniona jako pierwsza nasearch
ścieżce.źródło
man resolv.conf
Możesz użyć tej
CanonicalDomains
opcji w swojej konfiguracji ssh.Dodanie następującego pliku konfiguracyjnego ssh spowoduje, że ssh spróbuje dołączyć go
domainname.com
do dowolnego hosta, który ma najwyżej 1 kropkę w nazwie:Z tą konfiguracją
ssh foo.eng
najpierw spróbujefoo.eng.domainname.com
i cofnie się,foo.eng
jeśli nie będzie można znaleźć hosta. Podobnie,ssh github.com
najpierw spróbujegithub.com.domainname.com
, więc jeśli chcesz połączyć się z GitHub, twój serwer DNS nie powinien zwracać rekordów dla nieistniejących hostów.CanonicalizeMaxDots
Mogą być używane do kontrolowania ile kropki mogą pojawić się w nazwie hosta przed ssh uważa za w pełni wykwalifikowanych i nie appenddomainname.com
. domyślnie wynosi 1, co powinno wystarczyć dla ciebie, biorąc pod uwagę obecny schemat, ale jeśli kiedykolwiek dojdziesz do czegoś takiegohostname.city.country
, musisz go zwiększyć.źródło