WSL Ubuntu에서 PuTTY Pageant 연동하기

이미지 출처: https://threatpost.com/uber-debuts-ssh-key-authentication-module/123633/

Windows Subsystem for Linux를 이용하여 작업을 하다보면 한 가지 불편한 점이 있습니다. 어떤 플랫폼을 우선시해서 다루느냐에 따라 상황이 다를 수는 있지만, 저의 경우에는 Windows가 주 플랫폼이고 Linux를 서브로 사용하는 상황이 많습니다.

이런 경우 PuTTY를 주로 사용하게 되는데, PuTTY의 SSH 키 포맷은 흔히 사용하는 OpenSSH의 것과는 다릅니다. 그래서 서로 연동해주는 도우미가 없다면, 어쩔 수 없이 PPK 파일을 OpenSSH용으로 변환하고 각각 따로 따로 보관해야 하는 수고스러움을 들여야 합니다.

그러던 중에 유용한 유틸리티를 하나 찾게되어 글로 정리해봅니다. weasel-pageant라는 도우미 유틸리티이며, 리포지터리는 https://github.com/vuori/weasel-pageant 입니다.

사용하기 전에 알아둘 것

weasel-pageant는 PuTTY와 함께 설치되는 Pageant와 WSL 환경 내의 SSH Agent를 이어주는 역할을 합니다. 그리고 아쉽게도 weasel-pageant 자체는 PuTTY의 Pageant를 대신 실행해주는 기능을 가지고 있지는 않습니다. 그래서 PuTTY의 Pageant를 weasel-pageant를 실행하기 전에 실행해 둔 상태여야 정상적으로 작동합니다.

PuTTY Pageant가 정상적으로 실행된 상태라면 아래 그림과 같이 작업 표시줄에 아이콘이 나타나있는 것을 보실 수 있습니다.

컴퓨터 아이콘 위에 모자 그림이 그려져 있는 아이콘이 PuTTY Pageant 프로그램입니다.

그리고 별도의 도우미 EXE 파일을 직접 실행하기 때문에, WSL이 관리하는 파일 시스템 영역이 아닌 Windows 측의 파일 시스템 영역 상에 weasel-pageant 유틸리티의 압축이 풀린 상태에서 실행되야 합니다.

그리고 Windows 10 Creators Update 이상의 WSL 환경에서만 작동합니다.

설치하고 구성하기

빠르고 쉬운 설명을 위하여, 릴리스된 바이너리 기준으로 설치하는 방법을 정리하였습니다. 그리고 Ubuntu 16.04.3 Xenial Xerus 버전을 기준으로 설명합니다.

위의 페이지에서 ZIP 파일을 다운로드하고, 압축을 알기 쉬운 위치에 해제합니다. 이 문서에서는 C:\Tools 폴더에 압축을 해제한 것을 기준으로 진행하였습니다.

그리고 WSL의 프로필 파일 (~/.bashrc, ~/.bash_profile, 또는 ~/.profile)을 에디터로 열어 다음의 문장을 추가합니다.

eval $(/mnt/c/Tools/weasel-pageant-1.0/weasel-pageant -r -a "/tmp/.weasel-pageant-$USER")

/mnt 다음에는 실제로 압축을 풀었던 경로를 그대로 기재해줍니다. 여기서는 C:\Tools\weasel-pageant-1.0 에 압축을 풀었기 때문에 /mnt/c/Tools/weasel-pageant-1.0 으로 지정하였습니다.

위와 같이 설정을 추가하고 파일을 저장한 다음, bash 셸을 다시 시작합니다.

SSH 키 추가하고 확인하기

이제 Pageant 프로그램에서 키를 추가하면 WSL에서도 키를 사용할 수 있는지 살펴보겠습니다.

ssh-add -l

현재 상태에서 위의 명령을 입력하면 키가 등록되어있지 않다고 메시지가 나타나게 됩니다.

이제 Pageant 아이콘을 트레이 아이콘 영역에서 찾아, 오른쪽 버튼을 누르면 나타나는 팝업 메뉴에서, Add Key를 눌러 사용하려는 키 파일을 등록해줍니다. PuTTYgen으로 만들거나 기존 키를 변환하여 만든 PPK 파일을 찾아 등록하면 됩니다.

등록한 다음 다시 ssh-add -l 명령을 실행하면 키가 정상적으로 등록된 것을 볼 수 있습니다.