Visual Studio Code – Remote : ssh_config 정의

(Last Updated On: October 18, 2021)

Visual Studio Code의 Remote 확장을 이용하여 SSH 원격서버에 엑세스 및 작업

개요

옛날 부터 서버파일을 에디트 하고 싶은데 특히 윈도우즈 환경이고 서버환경은 리눅스일 때 수정이 굉장히 불편하여 곤란했다.
윈도우의 경우 주로 사용하는 PHP나 Python (ML등)의 라이브러리 및 어플리케이션의 오작동이 많아 어쩔 수 없이 어플리케이션이 올라가는 운영체제가 리눅스가 되었는데 로컬탐색기에서 수정을 할 수 없으니 SFTP를 이용해서 연동하는 IDE를 찾으려 했지만 대부분 sftp수정 및 탐색메뉴를 지원하는 에디터는 local<>remote 와 sync를 하는 구조였다. 하지만 몇 년새에 VSCode가 유행하여 살펴보았는데 옛날 부터 원하던 기능이 VSC에 구현되어 있어 간단한 사용법 (설정)을 올린다.

추가로 Windows OS 내에 WSL에 대한 Remote 확장이 따로 있으니 WSL을 사용하는 자라면 OpenSSH 서버를 별도로 구축할 필요 없이 이쪽을 확인하는 것을 추천한다.

ssh_config

기본적으로 VSC의 ssh 설정은 불친절하다. 전통적인 openssh의 클라이언트 포맷을 그대로 사용한 탓에 GUI 환경임에도 불구하고 ssh client의 구성을 찾아야 했다. 대부분 다른 OS (macOS) 의 자료만 나와서 조금 곤란했다.

다음은 이번 VSC-Remote를 사용하기 위한 ssh_config 파일의 예제이다.

Host "Ubuntu Dev"
  HostName 10.10.1.31
  User user1
  Port 22
  PreferredAuthentications publickey
  IdentityFile D:\myprivatekey.key

Host "Debian Dev"
  HostName 10.10.1.32
  User user1
  Port 22
  PreferredAuthentications publickey
  IdentityFile D:\myprivate.key
  • PreferredAuthentications publickey가 안들어가면 publickey를 사용하는 ssh 엑세스가느리다.
  • ssh_config 파일은 Visual Studio Code : Remote 기준으로 위치와 파일 명 및 파일 확장자는 자유이나 기본 경로는
    C:\Users\<username>\.ssh\config 이라고 한다.
    설정 아이콘이 탐색기쪽 Remote라고 되어있는 네임스페이스 쪽 비교적 보기 쉬운 곳에 있으므로 경로를 수정하고 싶으면 수정하면 된다.
  • sshconfig이 로드가 된 경우 VSC Remote 확장의 탐색기창에 내가 입력한 호스트들이 나온다. 해당 호스트들에 우클릭 하면 [현재 창] 또는 [새 창] 에서 호스트에 연결하는 과정을 진행 할 수 있다.

Resolver error: Error: The process tried to write to a nonexistent pipe

~.key (Permission denied)
Resolver error: Error: The process tried to write to a nonexistent pipe
가 떴다.

나는 D드라이브에 private key를 두고 사용하는데 Windows OS를 자주 초기화 하던 탓에 이전 OS에서 할당된 파일권한으로 인하여 key에 엑세스 할 수 없는 상황이 발생하였다.

사용자에게 해당 private key에 대한 읽기 권한을 부여하면 해당 오류는 해결 된다.