Strona podręcznika mówi:
Gospodarz
Host Ogranicza następujące deklaracje (do następnego słowa kluczowego Host) tylko dla tych hostów, które pasują do jednego ze wzorów podanych po słowie kluczowym. Jeśli podano więcej niż jeden wzór, należy je oddzielić białymi spacjami. Pojedynczego `* 'jako wzorca można użyć do zapewnienia globalnych ustawień domyślnych dla wszystkich hostów. Host to argument nazwy hosta podany w wierszu poleceń (tzn. Nazwa nie jest konwertowana na kanoniczną nazwę hosta przed dopasowaniem).
Wpis wzorca można negować, poprzedzając go wykrzyknikiem (`! '). W przypadku dopasowania zanegowanego wpisu wpis Host jest ignorowany, niezależnie od tego, czy pasują do niego inne wzorce. Negowane dopasowania są zatem przydatne do zapewnienia wyjątków dla dopasowań symboli wieloznacznych.>
Zobacz WZORY, aby uzyskać więcej informacji o wzorach.
Nazwa_hosta
Nazwa hosta Określa prawdziwą nazwę hosta, na który należy się zalogować. Można to wykorzystać do określenia pseudonimów lub skrótów dla hostów. Jeśli nazwa hosta zawiera sekwencję znaków `% h ', zostanie ona zastąpiona nazwą hosta określoną w wierszu poleceń (jest to przydatne do manipulowania niekwalifikowanymi nazwami). Domyślnie jest to nazwa podana w wierszu poleceń. Dozwolone są również numeryczne adresy IP (zarówno w wierszu polecenia, jak iw specyfikacjach HostName).
Na przykład, gdy chcę utworzyć konfigurację SSH dla GitHub, czym powinny być odpowiednio Host i nazwa_hosta?
Host
jest ciągiem, który użytkownik podaje jako dane wejściowe do CLI podczas wywoływania SSH;HostName
Jest to ciąg znaków, który klient SSH Wyjście przez sieć, gdy próbuje połączyć się z serwerem.Odpowiedzi:
W przypadku github.com
~/.ssh/config
może to wyglądać takDla nazwy hosta: jak mówi mężczyzna, pozwala określić skrót nazwy hosta. Na przykład, jeśli
~/.ssh/config
tak wyglądaszNastępnie podczas pisania
ssh host1
faktycznie logujesz się na host1.przyklad.comssh host2
zaloguj się do anotherdomain.comźródło
~/.ssh/config
przykładzie?W prostym użyciu:
Host
to rzeczywista nazwa hosta i nie maHostName
LUB
Host
to pseudonim hosta iHostName
rzeczywista nazwa hosta.Prosty przykład:
Uwaga: strona podręcznika jest poprawna technicznie, jest nieco dziwnie sformułowana. Dodam jeszcze kilka słów dla jasności:
HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.
źródło
Ostatnio chciałem zrobić coś z hostem i nazwą hosta, ale zapomniałem o dokładnej składni ... ale przeglądanie tego było bałaganem, a strona podręcznika nie była zbyt pomocna. Więc zakładając, że są inni, którzy mają taką samą potrzebę, oto moje ciekawostki.
Host określa argument wiersza poleceń i można go traktować jako a) rzeczywistą nazwę hosta / adres IP, b) skrót, c) alias. Nazwa hosta to prawdziwa nazwa hosta / adres IP komputera, z którym się łączysz. W polu HostName można użyć% h jako ciągu nazwy hosta określonego w wierszu polecenia. (To była część, której chciałem użyć w moim przykładzie.)
Załóżmy, że masz zestaw hostów, w których nazwa hosta zaczyna się od my-proj-host -... i wszystkie są w domenie .my.proj.domain.com, i muszę się do nich zalogować, używając określonego klucza ssh my-proj-id-rsa i określony identyfikator użytkownika my-proj-user. Aby ułatwić mi życie, dodałbym następujące pliki do pliku ~ / .ssh / config
Teraz mogę pisać
Bez konfiguracji byłoby to możliwe
oszczędzając trochę pisania (i literówek).
źródło