.ssh/config 사용법. 우선 순위 적용.

지금껏 ~/.ssh/config 파일을 잘 사용해왔다. 그런데, 글로벌 옵션에 있는 내용과 상반된 사항이 있을 경우, 내가 원하는 대로 작동하지 않는 문제를 발견했다.

예를 들면 이렇다.

Host *
    ForwardX11 yes
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_ed25519

Host wrt1300
    ForwardX11 no
    ForwardX11Trusted no
    HostName openwrt.lan
    User howrt

이렇게 설정한 경우, ssh wrt1300 을 했을 때, ForwardX11 은 no 가 아니라 yes 로 인식된다. 왜냐? 먼저 나온게 우위를 가지기 때문이다.

따라서, Host * 는 파일에서 맨 아래 쪽에 넣어주어야 저런 오류를 방지할 수 있다.

또, Host 명에서도 *, ?, ! 등을 사용할 수 있다.

예를 들어, 다음은 모든 호스트에 선택사항을 적용하되, dada 는 제외하라는 뜻이 된다.

Host * !dada
    어쩌고 저쩌고...

man ssh_config 엔 너무 원론만 써 있어서 알아보기가 어려웠고, Using the SSH Config File 에서 큰 도움을 얻었고, Digital Ocean 에서도 ‘순서’의 중요성을 확인할 수 있었다. (아.. 모르고 대충 쓰는게 너무 많아..)

Digital Ocean 에 있는 문구 하나를 옮겨본다.

More general definitions should come later on in order to apply options that were not defined by the previous matching sections.

세부 설정 먼저, 일반 설정은 아래 쪽에!
명심할지라!

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.