1. 서론
Windows와 WSL2(Ubuntu) 환경을 같이 사용하다 보니 SSH 설정 파일을 관리하는 것이 불편했다. 주로 WSL2에서 SSH를 사용하지만, 윈도우에서도 가끔 사용해야 하는 일이 있었고 그 때마다 윈도우에 SSH 설정을 추가해서 사용하고는 했다. 두 환경에 SSH 설정 파일이 각각 있기 때문에 관리가 어려웠던 부분을 공통 SSH 설정 파일을 만들고, 각 환경의 설정 파일은 추가 적용할 부분만 설정하는 방식으로 개선했다.
2. SSH 설정 관리 방법
Windows 환경에 공통 SSH 설정 파일을 생성하고, 각 환경은 생성한 공통 SSH 설정 파일을 Include 하는 구조로 작업하였다.
Windows:
C:\Users\<사용자명>\.ssh\config.common # 공통 설정 원본
C:\Users\<사용자명>\.ssh\config # Windows 설정
WSL2:
~/.ssh/config.common # rsync로 동기화된 공통 설정 복사본
~/.ssh/config # WSL2 설정
가. 공통 설정 파일 생성
C:\Users\<사용자명>\.ssh 경로에 config.common 파일을 생성하고 아래와 같이 기존 사용하는 설정을 추가한다.
# 1번 서버
Host SERVER_01
HostName <IP>
Port <PORT>
User <USER>
IdentityFile <FILE>
IdentitiesOnly yes
...
# 2번 서버
...
나. Windows의 SSH 설정 파일 수정
기존 C:\Users\<사용자명>\.ssh\config 파일은 아래와 같이 공통 파일을 Include하게 변경한다.
Include ~/.ssh/config.common
다. WSL2(Ubuntu)의 SSH 설정 파일 수정
WSL2(Ubuntu)에서 Windows의 파일을 직접 참조할 경우 아래와 같은 에러가 발생할 수 있다.
Bad owner or permissions on /mnt/c/Users/<사용자명>/.ssh/config.common
에러를 해결하기 위해, Windows의 공통 SSH 설정 파일을 ~/.ssh/config.common로 복사하여 사용했다. 매 번 복사를 하긴 불편하니, ~/.zshrc에 아래 내용을 추가하여 rsync를 통해 파일을 동기화 할 수 있게 했다. ~/.zshrc 내용을 수정한 뒤에는 SHELL을 다시 열거나 source ~/.zshrc 명령을 통해 갱신하면 된다.
# ~/.zshrc
rsync -t --chmod=F600 /mnt/c/Users/<사용자명>/.ssh/config.common ~/.ssh/config.common
~/.ssh/config 파일은 아래와 같이 공통 파일을 Include하게 변경한다.
Include ~/.ssh/config.common
3. 결론
Windows와 WSL2에서 SSH 설정을 각각 관리할 때는 같은 서버 정보를 중복으로 수정해야 하므로 관리가 어려웠다. 이 구조를 사용하면 SSH 접속 정보는 하나의 원본 파일에서 관리하면서도, Windows와 WSL2의 파일 권한 차이로 인한 문제를 피할 수 있다.