원격서버에서 VSCode 사용하기

sshcode

Visual Studio Code 는 MS 에서 오픈소스화한 후, 다양한 운영체제를 지원과 풍부한 extension 때문에 점점 사용 빈도수가 높아지고 있는 앱 중 하나가 되어 가고 있는것 같습니다. 노트북에서도 소스 에디터로 많이 사용하고 있지만, sshcode 로 인해 활용성이 서버로까지 확장되고 있습니다.

요즘은 클라우드상에서 명령어를 통해서 작업하는 것보다는 YAML형태의 파일로 상태를 선언해서 사용하는 작업이 많아 서버에서 작업을 해야 할때 소스 에디터가 아쉬운 경우가 많습니다. vi 라는 전통적 툴이 있지만 아주 장황한 YAML 파일을 수정하다 보면 금새 타이핑이 피곤해지기 일 수 입니다.

이럴 때, sshcode 라는 툴을 이용하면 서버에서 VSCode를 사용할 수 있게 되어, YAML 파일 작성과 터미널 작업을 한결 수월하게 진행할 수 있게 됩니다.

sshcode(https://github.com/cdr/sshcode) 는 VSCode 를 서버에서 띄울수 있게 만든 code-server(https://github.com/cdr/code-server) 라는 프로젝트의 SSH 기반 툴로써, 간단한 명령으로 원격 서버상에 VSCode 를 띄워 사용할 수 있게 해줍니다.

로컬 VSCode와 extension을 동기화 해주는것도 아주 편리한 기능 중 하나 입니다. sshcode 는 Linux와 MacOS를 지원합니다.

사용하는 방법도 아주 간단합니다. 맥에 VSCode 및 Chrome을 설치하고 sshcode 바이너리를 다운로드 받아 압축을 해제합니다. (https://github.com/cdr/sshcode/releases)

> wget https://github.com/cdr/sshcode/releases/download/v0.9.0/sshcode-darwin-amd64.tar
> tar -xvf sshcode-darwin-amd64.tar

이제 좀 더 sshcode 를 편리하게 사용하기 위해서 SSH Key 기반으로 암호를 매번 넣지 않고 원격 서버에 접속할 수 있게 Key 를 생성하고 원격 서버로 복사해주는 작업을 해줍니다.

> ssh-keygen
> ssh-copy-id comafire@34.97.22.22

이제 sshcode 로 아래 명령을 수행하면 맥 노트북 상에 크롬 브라우저 창이 뜨고, 아래 랜덤하게 생성된 암호를 복사해서 넣으면 SSH 상에서 안전하게, 원격 서버에서 수행되는 VSCode 를 사용할 수 있게 됩니다.

MacOS 에서는 ssh connection 을 reuse 할때 retry max 에러가 날 수 있습니다. 이를 방지하기 위해 --no-reuse-connection 옵션을 꼭 넣어줍니다.

> ./sshcode --no-reuse-connection comafire@34.97.22.22
2019-11-16 01:40:07 INFO    starting SSH master connection...
++ uname -m
+ '[' x86_64 '!=' x86_64 ']'
+ pkill -f /home/comafire/.cache/sshcode/sshcode-server
+ true
+ mkdir -p /home/comafire/.local/share/code-server /home/comafire/.cache/sshcode
+ cd /home/comafire/.cache/sshcode
+ curlflags='-o latest-linux'
+ '[' -f latest-linux ']'
+ curlflags='-o latest-linux -z latest-linux'
...
2019-11-16 01:40:44 INFO    synced extensions in 3.578024878s
2019-11-16 01:40:44 INFO    starting code-server...
2019-11-16 01:40:44 INFO    Tunneling remote port 55066 to 127.0.0.1:10649
Option 'allow-http' is unknown. Ignoring.
Option 'allow-http' is unknown. Ignoring.
info  Server listening on http://127.0.0.1:55066
info    - Password is adba01143e83a2c016b36435
info      - To use your own password, set the PASSWORD environment variable
info      - To disable use `--auth none`
info    - Not serving HTTPS

Comments

Comments powered by Disqus