지금껏 ~/.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.
세부 설정 먼저, 일반 설정은 아래 쪽에!
명심할지라!