SSH 구성에서 호스트와 호스트 이름의 차이점은 무엇입니까? 기본값을 제공 할

매뉴얼 페이지는 다음과 같이 말합니다.

주최자

호스트 다음 선언 (다음 호스트 키워드까지)은 키워드 다음에 주어진 패턴 중 하나와 일치하는 호스트에만 적용됩니다. 둘 이상의 패턴이 제공되는 경우 공백으로 구분해야합니다. 패턴으로 하나의`* ‘를 사용하여 모든 호스트에 전역 기본값을 제공 할 수 있습니다. 호스트는 명령 행에 제공된 호스트 이름 인수입니다 (즉, 이름은 일치하기 전에 정규화 된 호스트 이름으로 변환되지 않습니다).

접두사 앞에 느낌표 (`! ‘)를 붙여 패턴 입력을 무효화 할 수 있습니다. 부정 된 항목이 일치하면 라인의 다른 패턴과 일치하는지 여부에 관계없이 호스트 항목이 무시됩니다. 따라서 부정 일치는 와일드 카드 일치에 예외를 제공하는 데 유용합니다.>

패턴에 대한 자세한 정보는 패턴을 참조하십시오.

호스트 이름

HostName 로그인 할 실제 호스트 이름을 지정합니다. 호스트의 별명 또는 약어를 지정하는 데 사용할 수 있습니다. 호스트 이름에 문자 시퀀스`% h ‘가 포함되어 있으면 명령 행에 지정된 호스트 이름으로 바뀝니다 (이것은 규정되지 않은 이름을 조작하는 데 유용합니다). 기본값은 명령 행에 지정된 이름입니다. 숫자 IP 주소도 허용됩니다 (명령 줄과 HostName 사양 모두).

예를 들어 GitHub에 대한 SSH 구성을 만들려면 각각 Host와 HostName은 무엇입니까?



답변

github.com의 경우 ~/.ssh/config다음과 같이 보일 수 있습니다

Host github.com
    IdentityFile ~/.ssh/key_name_for_github

호스트 이름의 경우 : man에서 말한 것처럼 호스트의 약어를 지정할 수 있습니다. 예를 들어, ~/.ssh/config이런 모습 이라면

Host host1
    HostName host1.example.com
Host host2
    HostName anotherdomain.com

그런 다음 입력 할 때

  • ssh host1실제로 host1.example.com에 로그인합니다
  • ssh host2anotherdomain.com에 로그인

답변

간단한 사용법으로 :

Host 실제 호스트 이름이며 없음 HostName

또는

Host호스트의 별명이며 HostName실제 호스트 이름입니다.

간단한 예 :

$ cat ~/.ssh/config
Host dev
    Hostname <hostname>
    User <username>
    IdentityFile <path_to_private_key>

$ ssh dev
# Equivalent to "ssh -i <path_to_private_key> <username>@<hostname>"

참고 : 매뉴얼 페이지는 기술적으로 정확하며 조금 이상하게 표시됩니다. 명확성을 위해 몇 가지 단어를 더 추가하겠습니다.HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.


답변

최근에 호스트와 호스트 이름으로 무언가를하고 싶었지만 정확한 구문을 잊어 버렸습니다 … 그러나 인터넷 검색은 혼란스럽고 매뉴얼 페이지는별로 도움이되지 않았습니다. 그래서, 같은 필요를 가진 다른 사람들이 있다고 가정하면, 여기에 약간의 혼란이 있습니다.

호스트는 명령 행 인수를 지정하며 a) 실제 호스트 이름 / IP, b) 속기, c) 별명으로 생각할 수 있습니다. HostName은 연결중인 시스템의 실제 호스트 이름 / IP입니다. HostName 필드에서 % h를 명령 행에서 지정한 호스트 이름 문자열로 사용할 수 있습니다. (이것은 필자의 예제에서 사용하고 싶은 부분이었습니다.)

호스트 이름이 my-proj-host -…로 시작하고 모두 .my.proj.domain.com 도메인에 있고 특정 ssh 키를 사용하여 로그인 해야하는 호스트 세트가 있다고 가정 해 봅시다. my-proj-id-rsa 및 특정 사용자 ID my-proj-user. 내 인생을 더 쉽게 만들기 위해 ~ / .ssh / config 파일에 다음을 추가합니다.

호스트 내 프로젝트 호스트 *

호스트 이름 % h.my.proj.domain.com

사용자 내 프로젝트 사용자

IdentityFile ~ / .ssh / my-proj-id-rsa

이제 입력 할 수 있습니다

ssh my-proj-host-1234

구성이 없으면

ssh -i ~ / .ssh / my-proj-id-rsa my-proj-user@my-proj-host-1234.my.proj.domain.com

약간의 타이핑 (및 오타)을 저장합니다.


답변