[vscode] 원격에 있는 머신의 코드를 수정하기

코드 편집기로 Visual Studio Code를 사용하고 있다. 주로 로봇의 PC에 설치하여 모니터와 키보드를 연결하고 작업을 하지만, 어느 정도 완성이 되고 나면 로봇을 동작시키면서 개발을 해야 하므로 모니터와 키보드는 더이상 연결할 수 없게 된다.

ssh를 이용하여 접속한 후 GUI를 미러링하여 사용할 수 있지만, 그렇게 되면 많이 느려지게 된다. 그래서 간단한 작업들은 터미널에서 vim을 이용하여 코드를 수정하곤 하는데, 이것저것 다수의 코드를 수정하려면 다소 힘들게 된다.

Visual Studio Code의 확장기능 중 Remote – SSH가 이럴 경우 대단히 유용한다. 로봇(또는 그냥 원격머신)의 PC에 ssh로 접속하여 그냥 로컬머신에서 vscode를 사용하는 것과 동일하게 사용할 수 있다.

설치는 Extentions 탭으로 이용하여 Remote – SSH를 찾아 설치하면 끝.

그렇게 되면 왼쪽 탭에 모니터와 같은 모양의 아이콘이 생성된다.

처음 실행하게 되면, 위와 같이 host를 설정하라는 메시지가 나온다. Configure를 클릭하면

와 같이 나오는데, 주로 본인 계정하에서 사용하므로 첫번째와 같이 본인의 홈 폴더에 생성하도로 한다. 그렇게 되면 기존 config 파일이 나오거나, 없으면 다음과 같이 템플릿을 생성하여 보여준다.

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host alias
    HostName hostname
    User user

자 이제 원격PC에 접속하기 위한 계정 정보를 입력한다.

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host robot1_pc
    HostName 192.168.9.10
    User robot

위와 같이 계정 정보와 서버의 주소를 입력한다. 만약 hosts 파일에 컴퓨터명을 등록했으면 주소 대신 컴퓨터명을 적으면 된다. 위의 내용을 터미널 상에서 ssh를 접속하게 된다면 다음과 같은 내용이라고 보면 된다.

$ ssh robot@192.168.9.10

저장하고 나면, 왼쪽 Connections 창에 이름이 나타난다. 이제 이름 옆 창 표시를 클릭하면, 새로운 vscode 창이 생기면서 원격 머신에 접속하게 된다.

접속이 완료되면, 왼쪽 하단에 원격 PC이름이 나타나고, 터미널도 역시 원격 PC의 터미널이 보임을 알 수 있다. 또한, Open Folder를 클릭하면 원격 PC의 디렉토리 및 파일들이 나타난다. 이제부턴 로컬 머신과 같이 사용가능하다. (물론 파일 복사나 이동 등도 가능)

팁.

매번 접속시 비밀번호를 묻는게 귀찮다면, 원격PC의 known_hosts에 로컬PC의 ssh 퍼블릭 키를 등록하면 된다. 키 생성은 ssh-keygen으로 하고, 생성된 id_rsa.pub 파일의 내용을 원격 PC의 known_hosts 파일에 추가한다.