ssh의 개인키, 공용키의 의미를 multipass 에서 찾다…

윈도우즈에서 우분투 개발환경을 만들려면 보통 WSL2를 설정하게 된다. 하지만 WSL은 1대 이상 운용이 어렵기 때문에 2대 이상의 우분투 환경을 만들기는 어렵다.

이를 위해 대안으로 찾은 것이 multipass였다. multipass를 설치하면 윈도우즈의 경우는 하이퍼바이저 플랫폼 기반으로 설치되며 docker를 쓰는 기분으로 빠르게 기동할 수 있다는 장점이 있다.

multipass 인스턴스를 디폴트로 설치하면 IP가 고정이 안된다는 아쉬운 점이 있다. 이를 위해 고정으로 설치하는 법은 이전 블로그 글을 참조하기 바란다.

고정 IP를 멀티페스 인스턴스에 설정했다면 이제 개발을 위해 IDE를 접속가능하도록 해야 한다. IDE로는 VSCode를 사용한다.VSCode의 Remote SSH 로 접속을 하려 했는데… 이게 안된다. pem파일이 있는 것도 아니고, pw가 있는 것도 아니도…

그러다가 알아낸 방법은 내 PC에서 ssh로 개인키, 공개키를 만들고 multipass 인스턴스(우분투서버)에 이 공개키를 설정해 놓으면 VSCode에서 multipass 인스턴스로 접속 시도시 PC의 개인키로 접속을 시도하는 것이었다. 물론 결과는 정상적으로 접속되었다.

ssh로 PC에서 rsa공개키, 개인키를 만드는 방법은 간단하다. 윈도우즈에 git이 설치되었다는 조건하에 다음을 커멘드로 입력하면 된다.

ssh-keygen -t rsa

적당한 키 위치(보통 ~/.ssh/에 많이 둔다)를 지정하여 생성하면 id_rsaid_rsa.pub 두 개의 파일이 만들어지는데 메모장 등으로 id_rsa.pub파일을 열어 복사를 해 둔다.

다음에는 multipass 인스턴스로 접속해 ~/.ssh/폴더 밑에 가면 authorized_keys라는 파일이 보일 것이다. 그 파일을 vi로 열고 아까 복사해 둔 내용을 파일안에 추가하기만 하면 된다.

공개키는 접속을 수락하는 쪽에서… 개인 키는 접속을 하려는 쪽에서 나누어 가지고 있어야 하는 것이다.

기억을 위해 적어 놓는다.