W pracy często muszę logować się na hostach, które stosują wspólny schemat nazewnictwa, np. qc01
- qc12
, hc01
- hc10
i tak dalej. Wszystkie te muszą uzyskać te same wartości konfiguracji w moim laptopie .ssh/config
. Oczywiście mógłbym użyć wpisów dla hostów qc*
i hc*
, ale zastanawiam się, czy zamiast tego można w jakiś sposób użyć wyrażeń regularnych?
ssh
regular-expression
andreas-h
źródło
źródło
man ssh_config
.Możesz używać pełnych wyrażeń regularnych w swoim
ssh_config
.Odpowiednia dokumentacja jest bardzo trudna do odczytania i zrozumienia przez IMO. Rozumiem to tylko dlatego, że mam ponad 13 lat doświadczenia w Linuksie i ponad 8 lat używania
ssh
. Oto moje streszczenie dokumentacji:man ssh_config
opisuje funkcję o nazwieMatch
exec
która pozwala ci użyć dowolnego polecenia powłoki do określenia dopasowaniaTOKENS
W moim przypadku skończyło się na użyciu w moim
~/.ssh/config
:Testowanie należy wykonać przy użyciu czegoś takiego podstępnego. Aby wykonać te testy, zadzwoń
ssh -vvv HOSTNAME
. Który pokaże dokładnie, co się dzieje i czy Twój nowyMatch
jest poprawnie zaimplementowany.źródło
Rozszerzając odpowiedź Trevora:
Możliwe są również bardziej złożone hosty, takie jak dopasowanie
foo123.123
ifoo10.10
jedna zasada BEZ posiadania wpisów DNS dla używanych nazw hostów:Użycie ProxyCommand do manipulowania zawartością% h za pomocą powłoki i połączenie się z odpowiednim portem za pomocą netcata. W ten sposób możesz tworzyć ustawienia wstępne dla kategorii hostów, bez tworzenia pojedynczych wpisów.
źródło