chocoding™

좌충우돌 엉망진창 코딩 성장 블로그

AWS EC2 우분투 vscode ssh로 접속 하기

윈도우즈를 사용했던 사람들은 원격에 있는 우분투에 SSH 터미널로 접속하면 불편 함을 느끼게 마련이다. GUI 환경에서 손쉽게 클릭질과 드래그 앤 드롭으로 모든 걸 처리 하다가 CLI 환경에서 일일이 명령어를 입력하고 20세기 감성의 불편한 에디터를 쓰는 게 말처럼 쉽지는 않을 것이다. 그래서 윈도우즈 환경에서 작업을 할 수 있는 방법을 찾아보다가 vscode에서 ssh로 접속을 할 수 있는 플러그인이 있다고 해서 사용해 봤다.

Remote-SSH 플러그인 설치

Ctrl + Shift + X를 눌러 플러그인 설치 창으로 이동. Remote-SSH를 찾아 설치 한다.

Remote-SSH 접속 환경 설정

F1키 혹은 Ctrl+Shift+P키를 눌러 Command Palette를 열고 remote-ssh를 입력하면 아래 그림과 같이 Open SSH Configuration File… 이라는 커맨드 선택

Select SSH configuration file to update에서 c:\Users\사용자명\.ssh\config 선택

아래는 ubuntu-Sydney라는 호스트와 ubuntu-Seoul이라는 두 개의 호스트 환경을 설정해 놓은 예시이다.

SSH Config
Host ubuntu-Sydney
  HostName 12.34.56.78
  User ubuntu
  Port 22
  IdentityFile C:\Users\mis96\ubuntu-sydney.pem

Host ubuntu-Seoul
  HostName 12.34.56.78
  User ubuntu
  Port 22
  IdentityFile C:\Users\mis96\ubuntu-seoul.pem

vscode로 우분투에 접속 하기

다시 F1키로 Command Palette를 열어 Connect to Host…를 선택. 위에서 설정한 호스트 이름을 선택해서 열면 된다.

그러면 원격 호스트의 플랫폼(OS;운영체제)이 무엇인지 묻게 되는데 해당 OS를 선택하면 접속 완료

vscode로 우분투 원격 디렉토리 열기

왼쪽 Explorer (탐색기) 창에서 Open Folder (원격 폴더)를 선택하면 (Ctrl+Shift+E)

아래와 같이 디렉토리 경로를 물어 보는데 원하는 디렉토리로 선택하면 된다.

다음과 같이 디렉토리 파일의 작성자를 신뢰하느냐 (Do you trust the authors of the files in this folder?)는 창이 뜨면 /home 디렉토리 이하 모두 신뢰한다 (Trust the authors of all files in the parent folder ‘home’)에 체크하고 예, 작성자를 신뢰합니다 (Yes, I trust the authors)를 선택하면 디렉토리가 열리게 된다.

원격 우분투 서버에 접속된 모습

vscode로 우분투 SSH 터미널 열기

원격 디렉토리에 접속이 된 후 터미널 창을 열면 아래와 같이 SSH 환경으로 작업할 수 있다. (Ctrl+~)

PPK 파일 PEM으로 변환하기

PuTTY(푸티 SSH 터미널)를 사용하기 위해 PPK 개인키를 생성했다면 이 것을 PEM 으로 바꿔 줘야 접속이 가능하다. 푸티를 설치 했다면 PuTTYgen 이라는 프로그램이 깔렸을 텐데 이 놈으로 변환 해주면 된다.

프로그램에서 ppk 파일을 불러온 다음 Conversions에서 Export OpenSSH key를 선택하고 확장자를 pem으로 해서 저장하면 된다. 중간에 보안 설정 없이 저장할 거냐고 물어보는데 ‘Y’를 선택하면 된다.

vscode ssh 접속이 안되는 경우

ppk 개인키를 사용하는 경우

ppk 확장자를 가진 개인키는 putty에서만 사용하는 포맷의 개인키라서 vscode ssh 접속에는 쓸 수 없다. pem 방식으로 변환을 해야 하는데 변환 하는 방법은 PPK 파일 PEM으로 변환하기 참조.

서버에서 키페어를 새로 생성한 경우

Permission denied (publickey) – 프로세스에서 없는 파이프에 쓰려고 했습니다.

서버에서 새로운 키페어를 생성해서 적용한 경우 새로운 개인키로 접속을 해야 한다.

먼저, 내 개인키와 서버의 공개키가 페어인지 확인해보자. PuTTYgen에서 내 개인키를 열어보면 (그림으로 이동) 아래와 같이 알 수 없는 문자들이 쭉 나와 있는데 이것이 바로 내가 가진 개인키의 해시코드이다. 이게 서버에 있는 키와 일치를 해야 하는데…

SSH Config
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDsQn9PLkWxZeq0wV3qrml7lQbzg6m5619eCd6f+6zhyvfnPynEp7MfZvrCtE0ou+L6Cimr9F7hy8t0ZHH6udKwjtU7tAGvXRm2cLbVQqAIYUwpqLq6Enbkj6tTJBc+FMewxJBZjewNGw9AvuI+59nXB6mSBgwZ3+iCH/2372k4jUARrxizfctxpkhQSVYBvdmZE4tTQsuWfdU0TiVphwzqqfgnYMzYL6zMipRfTbq+C+WcilLJ400dB3B4rydziv3gmaW5+3vRCq6t2Vnd+eOflLOOdtJyzFja5iw0nc/AbWn7kaKYNlydiUEXgj+M4DCtDqf1eSOtk+uGoiYsfrhb ubuntu-seoul

서버에 있는 authorized_key를 확인해 보자. (서버에 SSH 터미널로 접속이 되어 있어야 한다. 사용자는 ubuntu라고 가정)

ShellScript
vi /home/ubuntu/.ssh/authorized_keys

위 코드와 같다면 개인키에 문제가 없는 것이고 다르다면 새로운 개인키를 받아서 설정해야 한다.

무한 로딩 시 접속 해제

원격 우분투에 접속을 하지 못하고 계속해서 재접속을 시도하고 있을 때 접속을 끊으려면

왼쪽 아래에 Reconnecting to SSH…를 클릭하고 명령어 창에서 Close Remote Connection을 선택 해주면 된다.

혹자들은 개발자라면 CLI(Command Line Interface;명령어를 타이핑 하여 시스템을 컨트롤 하는 인터페이스)에 익숙해야 하지 않느냐는 말이 있는데 초보 입장에서는 vscode를 이용해서 좀 더 편하게 할 수 있는 환경을 이용하는 것도 나쁘지 않다고 생각 한다. 물론 내가 가는 곳의 환경이 지금의 이곳과 다 같으라는 법은 없지만 vscode 정도면 세계 어디든 쓰고 있는 툴이라 괜찮지 않을까? ^^;

라고 생각하지만 어쨌든 CLI에 익숙해지고 숨쉬는 것처럼 편안해진다면 더 좋을 것 같다. 언젠가 나에게도 그런 날이 오겠지…