단순화된 예:
host one
user cat
host two
hostname 2
host three
hostname 3
host *
hostname 1
host *
user apple
identityFile ~/.ssh/id_rsa
host y
hostname 7
host t
hostname 8
host *
user duck
identityFile ~/.ssh/quack
가능합니까?
첫 번째 호스트 위의 호스트는 host *
해당 값만 상속하고, 두 번째 호스트는 host *
그 아래 호스트에서만 상속합니다.
그렇지 않다면 이를 달성할 수 있는 방법이 있습니까?
답변1
나는 무엇을 모른다정확히여기서 달성하고 싶은 것은 세 가지입니다.
달리 명시하지 않는 한수동, 각 매개변수에 대해 처음 얻은 값이 사용됩니다.
Host
다음 선언(다음Host
또는Match
키워드까지)을 키워드 뒤에 제공된 패턴 중 하나와 일치하는 호스트로만 제한합니다.Host
/를Match
별개의 부분으로 생각하지 않는 것이 가장 좋습니다 . 구성 파일을 몇 가지 설정이 포함된 하나의 대규모 구성으로 생각하는 것이 가장 좋습니다.거르는.이 답변에서는 호출해야 하기 때문에 "섹션"이라고 부르겠습니다.무엇.
단순화된 예에서는 항상 일치하는 항목이 있으므로 첫 번째 항목은 hostname 1
파일에 host *
다음에 오는 모든 항목과 "승리" 합니다. 마지막 파일 아래의 모든 내용은 완전히 쓸모가 없습니다. 두 번째 파일 아래의 파일에서 및 가 더 일찍 나타나기 때문입니다.hostname
host *
host *
user
identityFile
host *
매뉴얼에는 다음과 같이 명확하게 명시되어 있습니다.
각 매개변수에서 처음 얻은 값을 사용하므로 파일 시작 부분에 더 많은 호스트별 선언을 제공하고 끝 부분에 일반 기본값을 제공해야 합니다.
여러 Host *
섹션이 허용됩니다. 즉, 구문이 깨지지는 않지만 거의 의미가 없습니다. 여러 번(몇 번) 사용할 때 누적되는 매개변수를 사용하지 않는다고 가정하면 다음 절차를 고려하세요.
인접한
Host *
파트(1부, 2부 등)를 하나의 파트로 작성할 수 있습니다.Host *
가능한 경우 섹션을 병합하세요.Host *
병합할 두 개 이상의 섹션에 매개변수가 나타나는 경우 첫 번째 매개변수가 "승리"되고 다른 모든 매개변수는 삭제된다는 점을 기억하세요.각
Host *
섹션에 대해 위에서 아래로:Host *
섹션이 끝에 있지 않고 파일의 후반부(즉,Host whatever
파일의 후반부 섹션)에 나타나는 매개변수가 선언된 경우 , 이후 선언은 관련이 없으며Host *
섹션(또는 이전 섹션)의 매개변수 때문에 제거될 수 있습니다. 부분) 어쨌든 이길 것입니다. 관련없는 진술을 제거하십시오. 제거할 것이 남지 않을 때까지 반복합니다.- 이제
Host *
섹션은 끝에 있지 않으며 파일 후반부(즉,Host whatever
파일 뒤의 섹션)에 나타나지 않는 매개변수만 포함합니다. 이는 이 섹션이 끝에 있을 수도 있음을 의미합니다. 끝까지 옮기세요. Host *
결국 두 부분이 있을 수 있습니다. 그렇다면 병합하십시오.
이 프로세스는 Host *
구성 파일 끝에 정확한 섹션을 제공합니다.
Host *
이러한 경우 파일 끝 부분이 아닌 부분이 의미가 있습니다.
여러 번 사용될 때 누적되는 매개변수의 경우. 일반적으로 순서가 중요합니다. 예를 들어
Host *
섹션 을 지정할 수 있습니다.IdentityFile
파일 시작 부분에 있으므로 일부 "기본" 키가항상 먼저 시도해보세요, 소유자가 누구이든 상관 없습니다. 그러면Host whatever
섹션에서 시도할 키를 지정할 수 있습니다 (호스트별).~ 후에. 마지막으로,Host *
파일 끝에 "일반" 키를 지정하여 시도해 볼 수 있는 섹션이 있습니다.마지막.나중에 파일에 나타날 수 있는 특정 매개변수를 재정의하려는 경우. 누군가(귀하를 포함하여)가 나중에 파일에서 해당 매개변수를 설정하려고 시도하는 경우(아래와 같이
Host y
) 그 시도가 헛된 것인지 확인하고 싶다고 상상해 보십시오 . 그러나 이는 쉽게 좌절로 이어질 수 있습니다.네가 원한다면일시적으로파일의 뒷부분에 나타나는 일부 매개변수를 재정의합니다. 이렇게 하려면
Host *
파일 끝이 아닌 임시 섹션을 만들고 위의 프로세스(섹션을 끝으로 이동)를 적용하지 마십시오. 간단히 말해서 변경 사항을 쉽게 되돌릴 수 있기를 원하기 때문입니다. 섹션을 삭제하여 구성 파일의 이전 상태를 복원합니다. 이 프로세스를 적용하면 다른 섹션의 일부 소유권 주장이 삭제될 수 있으며 복구가 쉽지 않습니다.