Git & Etc

[VSCode] VSCode로 원격 접속하기

판교너굴맨 2023. 1. 3. 00:42

Remote - SSH

 

회사에서 할당받은 Linux 서버를 VSCode에 원격 접속해서 작업하려고 한다. 

내 Wiindows노트북 보다 Linux 서버가 훨씬 빠르기 때문에..

 

1. Remote - SSH 설치

 Extensions에서 Remote-SSH를 설치한다.

 

설치가 완료 되면 아래처럼 아이콘이 생기는 걸 확인할 수 있다.

 

2. Connect Current Window to Host...

F1 또는 Ctrl + Shift + p 를 클릭해서 입력창에 Connect Current Window to Host... 를 입력 또는 선택한다.

 

선택 후에 + Add New SSH Host...를 클릭하고,

 

아래 양식에 따라 입력한다.

1번 방법
[user]@[hostname]:[port] # ex) hello@microsoft.com:3000

# or

2번 방법
ssh [hostname] -p [port] # ex) ssh microsoft.com -p 3000

 

입력하고 엔터를 누르면 user 하위에 있는 Config 파일로 이동할 수 있는데,

 

Config 파일로 들어가면 위에 입력한 내용을 기반으로 원격 서버의 정보가 추가되어 있다. 필요에 따라 IdentityFile 등의 설정을 추가할 수 있다.

 

3. 서버에 원격 접속

3-1. 위와 같이 설정을 하고 나서 Remote - SSH 아이콘을 확인하면 설정한 원격 서버가 추가되어 있다.

3-2. F1 또는 Ctrl + Shift + p를 클릭하고, Connect Current Window to Host... 를 클릭하면 + Add New SSH Host... 문구 위에 접속할 원격 서버가 추가된다.

 

4. 비밀 번호 입력 생략하기

서버에 원격 접속 할 때마다 비밀번호 입력하는 걸 생략하기 위해서는 local에서 SSH Key를 생성해야 한다.

본인은 git bash을 사용했다. (또는 power shell)

ssh-keygen # ssh key 생성
ls .ssh  # ssh 생성 확인

ssh-keygen 명령어를 입력하면 ssh key의 이름이 id_rsa, id_rsa.pub 기본 값으로 생성된다.

 

이름 등의 옵션을 추가하고 싶다면 아래 git docs를 참조한다.

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

Generating a new SSH key and adding it to the ssh-agent - GitHub Docs

About SSH key passphrases You can access and write data in repositories on GitHub.com using SSH (Secure Shell Protocol). When you connect via SSH, you authenticate using a private key file on your local machine. For more information, see "About SSH." When

docs.github.com

ssh key를 생성하면 로컬의 public key를 원격 접속 서버의 authorized_key에 등록한다. public key가 authorized_key에 등록되면 암호를 입력하지 않아도 접속할 수 있게 된다. 꼭  public key를 복사해야한다!

ssh-copy-id -i <public_key 경로> -p <port> <user>@<hostname>

# ex
$ ssh-copy-id -i .ssh/id_rsa.pub -p 1000 user@hostname

위 명령어를 실행하면 원격 접속 서버 .ssh 폴더에 authorized_keys파일이 생성되었고, 암호 없이 접속할 수 있게 된다. 

 

4-1. ssh key 이름이 id_rsa가 아닐 경우

만약, ssh key의 이름을 id_rsa가 아닌 다른 이름으로 생성했다면 ssh config 파일에 IdentityFile 옵션을 추가해야 한다.

Host hostname
    HostName hostname
    User user
    Port 1000
    IdentityFile <private_key 경로>