~/.ssh/config 작동 방식에 대해 내가 이해한 바는 각 "호스트" 줄이 구성 파일의 해당 지점 이후에 일치하는 모든 호스트에 대해 적용된다는 것입니다.
연결해야 하는 개인 및 업무 서버가 많이 있습니다. 나는 다음과 같은 일을하려고합니다 :
# 일반 설정 컨트롤 마스터 카 ControlPath ~/.ssh/controlmaster/%r@%h:%p 순방향 프록시는 ForwardX11은 GSSAPI 인증 아니요 공개키 인증은 # 개인서버 주인 * 사용자harleypig ID 파일 ~/.ssh/personal_id_rsa 호스트 호스트 1 호스트 이름host1.com 호스트 호스트 2 호스트 이름host2.com # 작동 중인 서버 주인 * 사용자 alan.young ID 파일 ~/.ssh/work_id_rsa 호스트 작품 1 호스트 이름 work1.companyserver.com 호스트 작업 2 호스트 이름 work2.companyserver.com 주인 * 사용자디바이저 호스트 개발 1 호스트 이름 dev1.companyserver.com 호스트 개발 2 호스트 이름 dev2.companyserver.com
문서에는 host1과 host2가 "personal_id_rsa" 및 사용자 harleypig를 사용해야 함을 나타내는 것 같습니다. work1, work2, dev1 및 dev2는 "work_id_rsa"를 사용해야 하며, 처음 두 개는 사용자 "alan.young"이어야 하고, dev1 및 dev2는 "devuser" 사용자여야 합니다.
그러나 이것은 일어나지 않았습니다. 내가 먼저 입력한 "호스트*"는 다음 호스트가 모두 연결을 시도하는 호스트입니다. 제가 뭔가 잘못 이해했거나 놓쳤나요?
답변1
~에서ssh_config
수동:
각 매개변수에서 처음 얻은 값을 사용하므로 파일 시작 부분에 더 많은 호스트별 선언을 제공하고 끝 부분에 일반 기본값을 제공해야 합니다.
따라서 귀하의 예에서는 모든 호스트가 User harleypig
및를 사용합니다 IdentityFile ~/.ssh/personal_id_rsa
.
와일드카드가 포함된 지시문을 Host
대체 항목으로 처리합니다. 다음 설정이 설정되지 않은 경우에만 사용됩니다. 다음과 같이 작성해야 합니다.
Host host1
Hostname host1.com
Host host2
Hostname host2.com
Host host*
User harleypig
IdentityFile ~/.ssh/personal_id_rsa
Host
지정된 호스트 별칭 집합을 와일드카드로 일치시킬 수 없는 경우 여러 패턴을 한 줄에 입력할 수 있습니다(예: ) Host host* more* outlier
.
답변2
당신이 뭔가 잘못하고 있는 게 틀림없어요.
Host *
항상 이 항목을 마지막 항목으로 만들어야 합니다 .Host *
여러 항목을 가질 수 없습니다
작업 컴퓨터에 작업 컴퓨터에만 일반화할 수 있는 이름 형식(예: machine1.work.com, host.work.com, fileserver.work.com)이 있는 경우 작업 컴퓨터를 다음과 같이 대상으로 지정할 수 있습니다.
Host *.work.com
User alan.young
IdentityFile ~/.ssh/work_id_rsa
개인용 컴퓨터에도 동일하게 적용됩니다.