Powiedz, że chcę skonfigurować moje ssh
opcje dla 30 serwerów z tą samą konfiguracją w moim .ssh
config
pliku:
host XXX
HostName XXX.YYY.com
User my_username
Compression yes
Ciphers arcfour,blowfish-cbc
Protocol 2
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
IdentityFile ~/.ssh/YYY/id_rsa
gdzie jedyną rzeczą, która zmienia się między tymi 30 maszynami jest XXX
.
Czy zamiast powtarzać powyższą strukturę 30 razy w moim config
pliku, istnieje inny sposób zdefiniowania zakresu maszyn?
%h
to, że funkcja pojawiła się w wersji 5.6 OpenSSH . Zastanawiałem się, dlaczego nie widziałem go wcześniej - wersja w Debian Squeeze to 5.5.config
, zawsze możesz napisać prosty skrypt, który go wygenerujeconfig
.Aby zminimalizować konfigurację, możesz mieć
.ssh/config
podobnyHost X01 X02 ...
można zastąpić,Host *
jeśli każdy host ma następującą konfiguracjęźródło
Host X01 X02 ...
go zastąpić*.YYY.com
? Wydaje się to nieco łatwiejsze do opanowania, jeśli działa.Po prostu użyj
*
Zobacz
man ssh_config
:źródło
?
wszędzie tam, gdzie chcę, aby został zastąpiony wzorem pasującym do*
znaku?config
wpisu, ale parametry hosta są stałe (tzn. Wzorce nie mogą być użyte do szablonu parametrów). Czy się mylę?Host *
wpisu i mieć osobny wpis dla każdego,Host XXX
który składa się tylko z części, które się różnią (tj.Hostname XXX.YYY.ZZZ
Linia).Z odpowiedzi Ignacio Vazquez-Abramsa i H.-Dirka Schmitta można dodać do .ssh / config
a następnie, na przykład, możesz zalogować się jako [email protected] przez
źródło
%h
, a nie%h.YYY.com
to działa dla mnie:
pozwala to na używanie nazw w domenie i zmianę nazwy użytkownika:
źródło
itslogprd05
host istnieje w obu domenach?xxx.auckland.ac.nz
wygrywa, tak myślę?