본문 바로가기

Tool/VS Code

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

반응형

아래 자료에서는 컨테이너를 조회해서 찾아서 들어간다.

(컨테이너에 따로 포트를 열수없는 등의 문제가 있을 경우 아래 방법을 추천한다.)

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

 

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

Ubuntu 18.04 서버안의 Docker(도커) container(컨테이너)에서 프로젝트를 테스트하고 있는데 vim밖에 사용이 안된다. 그래서 windows환경에서 연결하여 작업을 해보고자 vscode로 ssh연결을 시도하였다. 1. 준

24hours-beginner.tistory.com

 

한번 설정해놓으면 최근 작업에서 바로 바로 들어갈 수있지만 그래도 귀찮을 수 있다.

ssh 설정을 통하여 바로 Container에 접근 하는 방법을 알아보자

 

컨테이너말고도 그냥 ssh 연결도 똑같이 수행하면 연결된다.

 

1. 준비물

컨테이너

openssh-server

프로그램

vscode

vscode extension

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

확장 들어가기

 

1. 보기 - 확장

2. Ctrl+Shift+X

3. (확장)을 클릭

 

ssh 연결용

Remote Development

Remote - SSH

 

Docker Container 연결용 (선택) (여기선 필요없음)

Dev Containers (vscode extension)

※ 참고 ※
구) Remote - Containers(vscode extension)
주소는 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
로 동일하나 이름이 바뀌었다.

그래서 예전에 명령어도 remote-containers 로시작 되었으나
지금은 dev-containers 로 조회 된다.

# remote container not showing # remote containers 안보임

 

2. ssh 설정

컨테이너 접속

docker exec -it 컨테이너명 bash 

등으로 컨테이너를 접속한다.

 

openssh-server 설치

이미 설치되어 있다면 skip 가능

apt update
apt install openssh-server

ssh config 수정

/etc/ssh/sshd_config 의 속성을 아래와 같이 바꿔준다.

vim /etc/ssh/sshd_config

 

port : 원하는 포트로 설정

PermitRootLogin yes

PubkeyAuthentication yes

# /etc/ssh/sshd_config
...
# default value.

Include /etc/ssh/sshd_config.d/*.conf

Port 2022
#AddressFamily any
...

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
...

 

ssh 시작 (sshd 시작)

# 상태 확인
service ssh status

# 시작하기
service ssh start

# 재시작하기
service ssh restart

※ 이때 status 했는데 ssh is not runnging 이라면 port가 이미 사용중이진 않는지 확인해볼것

★ root 비밀번호 설정 ★

이미 설정되어 있다면 pass

passwd
New Password:
Retype new password:
passwd: password updated successfully

 

외부포트 개방

각 서버에 포트를 열어주어야 한다.

이건 서버의 보안에 따라 달라 생략한다.

 

3. ssh 연결

config 작성

C:\Users\사용자\.ssh 의 config 파일 또는

vscode에서 명령어 팔레트에(ctrl+shift+p) 아래를 검색하여 들어간다.

>원격-ssh: 호스트에 연결

>remote-ssh: connect to host

 

그러면

C:\Users\사용자\.ssh\config 파일이 열리는데

제일 간단하게는 아래와 같이 적는다.

Host test_container
    HostName test.iptime.org
    User root
    Port 2022

들여쓰기를 잘 해야한다.

Host : alias (별명 / 참조용)

user : 접속 user (아마 컨테이너는 root거나 따로 해줬을 경우 그 username)

hostname : 서버 ip 또는 dns 주소

port : 아까 위에서 적용한 port거나 포트포워딩으로 따로 처리해준 port

 

4. 접속

Remote Explorer 클릭

왼쪽 메뉴에 있어야하나 없는 경우 extention을 설치하거나

왼쪽 메뉴바에서 오른쪽 클릭하여 비활성화 되어있지는 않은지 확인해보고,

귀찮으면 명령어 팔레트에 >show remote-explorer 쳐도 찾을 수 있다.

ssh 새고로침

처음에 remote explorer를 접속했을 경우 리스트업이 안되어있을 수 있으니 새로고침을 해준다.

그러면 아래와 같이 등록된 리스트가 나온다.

새 창에서 호스트에 연결

비밀번호 입력

기다리기

처음에 연결할 경우 서버를 읽어와야해서 시간 좀 걸린다. 아래 ssh 호스트 설정: vs code server 다운로드 중이 없어질때 까지 기다리자.

연결완료

Opening Remote... 가 사라지고 연결시도하였던 주소가 왼쪽하단에 나타난다면 연결이 끝났다.

파일 경로설정?

초기엔 Open Folder를 눌러서 파일을 열 경로를 설정해주면 접속 끝

끝.

여기서 작업하면 이제 된다.

오류 Error

접속 잘 되다가 안되는 경우

1. 컨테이너가 꺼졌다가 다시 켜지는 경우 옵션이 달라질 수 있다.

/etc/ssh/sshd_config 파일을 한번 더 확인해보자.

 

2. 윈도우 기준 C:\Users\사용자\.ssh

폴더에 known_hosts 파일에 들어서가서

해당 ssh 연결을 지운 후 다시 연결시도를 해보자.

 

참조

https://24hours-beginner.tistory.com/254?category=815685 

 

[vscode] 원격지 docker container 연결하기

원격지 도커 컨테이너 접속하기 Connecting to a remote docker container 준비물 Materials 1. Visual Studio Code https://code.visualstudio.com/download 2. Visual Studio Code Extension - Remote Developme..

24hours-beginner.tistory.com

https://24hours-beginner.tistory.com/256?category=815685 

 

[vscode] 원격지 docker container 연결하기 (WSL)

원격지 도커 컨테이너 접속하기 Connecting to a remote docker container 준비물 Materials 1. Visual Studio Code 2. Visual Studio Code Extension - Remote Development 원격-SSH 및 원격 컨테이너 확장 외에..

24hours-beginner.tistory.com

https://24hours-beginner.tistory.com/278?category=815685 

 

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

Ubuntu 18.04 서버안의 Docker(도커) container(컨테이너)에서 프로젝트를 테스트하고 있는데 vim밖에 사용이 안된다. 그래서 windows환경에서 연결하여 작업을 해보고자 vscode로 ssh연결을 시도하였다. 1. 준

24hours-beginner.tistory.com

 

반응형