SSH 구성에서 Host와 HostName의 차이점은 무엇입니까?

SSH 구성에서 Host와 HostName의 차이점은 무엇입니까?

매뉴얼 페이지에는 다음과 같이 나와 있습니다.

주인

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

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

패턴에 대한 자세한 내용은 PATTERNS를 참조하세요.

호스트 이름

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

예를 들어 GitHub용 SSH 구성을 생성하려는 경우 Host와 HostName은 각각 무엇이어야 합니까?

답변1

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당신은 실제로 로그인호스트1.example.com
  • ssh host2로그인anotherdomain.com

답변2

간단한 사용법:

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.

답변3

나는 최근에 호스트와 호스트 이름으로 뭔가를 하고 싶었지만 정확한 구문을 잊어버렸습니다... 하지만 그것에 대해 인터넷 검색하는 것은 엉망이었고 매뉴얼 페이지는 그다지 도움이 되지 않았습니다. 그래서, 같은 필요를 가진 다른 사람들이 있다고 가정하고, 여기에 제 이야기가 있습니다.

Host는 명령줄 인수를 지정하며 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

사용자 my-proj-user

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

이제 입력할 수 있습니다.

SSH 내 프로젝트-호스트-1234

구성이 없었다면 그랬을 겁니다.

ssh -i ~/.ssh/my-proj-id-rsa[이메일 보호됨]

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

관련 정보