본문 바로가기

Tool/VS Code

[VSCode] SSH 연결하기 (+ Docker Container 접근)

반응형

Ubuntu 18.04 서버안의 Docker(도커) container(컨테이너)에서 프로젝트를 테스트하고 있는데

vim밖에 사용이 안된다.

 

그래서 windows환경에서 연결하여 작업을 해보고자 vscode로 ssh연결을 시도하였다.

 

1. 준비물

vscode

Remote Development(vscdoe extension)

Remote - SSH(vscdoe extension)

Remote - WSL(vscode extension) (선택)

 

에러 해결 (선택)

 

[VSCode] VSCode 원격 서버 연결 장애 (feat. Remote SSH)

[error?] 무한 로딩 or 무한 패스워드 입력 vscode에서 서버로 ssh 접속을 하기 위해서 remote-ssh extension 은 서버에 무언가 설치?를 한다. 근데 여기서 아래 2개 문구가 나오면서 다운로드 받으면서 무한

24hours-beginner.tistory.com

 

 

Docker Container 연결용

Remote - Containers(vscode extension)
docker

 

vscode extension은 각 사이트에서 다운로드 받거나 확장을 클릭하여 검색 후 다운로드 받을 수 있다.

확장 들어가기

1. 보기 - 확장

2. Ctrl+Shift+X

3. (확장)을 클릭

 

2. SSH 관리 파일 수정

1> vscode에서 아래 방법(명령어 팔레트/원격창열기) 중 한개를 통해 SSH 관리 파일을 열기를 한다.

Open SSH Configuration File...

  • 명령어 팔레트
    • Ctrl+Shift+P
    • 보기 - 명령어 팔레트
    • 도움말 - 모든 명령 표기
  • 원격 창 열기

 

  • vscode 좌측 하단 >< 모양 클릭

 

2> 내 PC의 config 파일을 선택합니다. (C:\Users\사용자명\.ssh\config)

3> 처음이면 아무것도 없다.

아래와 같이 설정을 작성 후 저장

들여쓰기도 꼭 해주어야 한다.

Host [계정명]@[IP 주소]:[포트번호]
    HostName [IP 주소]
    User [계정명]
    Port [포트 번호]
    
Host test@192.168.0.1:22
    HostName 192.168.0.1
    Port 22
    User test

 

3. ssh 접속

명령어 팔레트에서 Remote-SSH: Connect to Host... 을 찾아서

등록한 host 선택

액세스 허용

원격지 host의 OS를 선택

컨티뉴 선택

비밀번호 입력

ssh 접속 Error

근데 여기서 이상한점이 있는데 내가 입력한 user이름이 아니라 내 windows 사용자 이름(begin)으로 접속 시도가 되는 경우

ex) config엔 test@192.168.0.1:22 로 작성되어 있으나 접속은 begin@192.168.0.1:22 로 시도

 

1. code의 원격 탐색기 창에서 새로고침을 한 이후 다시 시도하면 된다. 라는 글이 있었고

하지만, 파일을 저장하고, code 의 원격 탐색기 창에서 새로고침을 한 이후에 다시 시도하니, 제대로 설정한 사용자로 로그인을 물어 접속할 수 있다. (원격 탐색기 창이란, code 의 오른쪽에 수동으로 설정한 config 파일 내용을 다시 UI 로 보여주는 부부을 말한다.)
출처: https://daewonyoon.tistory.com/317 [알락블록]

2. config 파일에서 Host를 적을때 

Host [계정명]@[IP 주소]:[포트번호] 

Host test@192.168.0.1:22로 적어야 하는데 여기서 계정명을 누락한 경우 그런 현상이 일어난다.

 

4. SSH 접속 완료 확인

근데.. 여기까지하면 원격 컴퓨터의 폴더라던가 터미널 접근이 가능하지만

컨테이너 내의 폴더에는 접근이 불가능하다.... 왓더..ㅠ

 

그럼 도커내의 폴더에 접근하려면 어떻게 해야할까?

 

5. 컨테이너내의 폴더에 접근하기 (Docker)

Docker Container 연결용

1. 일단 Docker용 준비물을 추가로 install헤준다.

2. SSH에서 접근한 상태에서 원격접속기에서 Containers를 클릭한다. (비밀번호 다시 적어주기)

3. 에러는 좀 더 아래쪽으로 내려가자

원격접속기

그러면 아래와 같이 접속된 컨테이너 목록이 로딩되며 (시간 조금 걸림)

3. 컨테이너를 오른쪽 클릭하거나 위와 같이 우측 Attach to Container 아이콘을 클릭하여 연결할 수 있다. (비밀번호 다시 적어주기)

그러면 아래와 같이 컨테이너에 접속이 되며 (시간 조금 걸림)

처음 로딩하였을때에는 아무것도 안뜨며 그래서 탐색기(Ctrl+Shift+E)로 가서 폴더 열기를 눌러보면

접속할 폴더를 선택할 수 있으며 확인을 누르면 (비밀번호 다시 적어주기 X 2)

폴더 트리가 로딩되며 접속이 가능하게 되는것이다.(시간 조금 걸림)

끝~

error 리스트 안나옴 (Shell server terminated (code: 255, signal: null) XSL)

https://24hours-beginner.tistory.com/424

 

[VS Code] Shell server terminated (code: 255, signal: null) XSL (작성중)

remote explorer - containers: Shell server terminated (code:255, signal: null) · Issue #7035 · microsoft/vscode-remote-releas VSCode Version: 1.70.0 Local OS Version: Window 10 Remote OS Version: Ubuntu 20.04.2 Remote Extension/Connection Type: SSH/Conta

24hours-beginner.tistory.com

컨테이너 직접적으로 연결하기

https://24hours-beginner.tistory.com/391#ssh_config_%EC%88%98%EC%A0%95

 

[Docker] vscode에서 Container 직접적으로 연결하기 (feat. ssh)

아래 자료에서는 컨테이너를 조회해서 찾아서 들어간다. (컨테이너에 따로 포트를 열수없는 등의 문제가 있을 경우 아래 방법을 추천한다.) https://24hours-beginner.tistory.com/278 [VSCode] SSH 연결하기 (+

24hours-beginner.tistory.com

 

[error] permission denied

root 계정이 아닌 경우 권한 문제로 튕기는 경우가 있다. 그럴 경우 권한을 주면 된다.

sudo usermod -aG docker [username]

 

참조

 

Error : 비밀번호 맞는데 3번 치고 안될 때

Client ~/user/.ssh/known_host : notepad++로 열어서 해당 port 삭제

# client
# ~/user/.ssh/known_host : notepad++로 열어서 해당 port 삭제
vim ~/user/.ssh/known_host

Server에서 passwd 설정

# server
passwd

 

반응형