본문 바로가기

컴퓨터/리눅스 (LINUX)

WSL SSH 접속 세팅하기

시스템 사양 (환경)

CPU - 3700X

Memory - 64GB

Mainboard - Msi, MAG B550M MORTAR

GPU - VEGA 64

WSL - Ubuntu 20.04

 

이번 글은 다음과 같은 내용이다.

1. WSL ubuntu에 ssh 세팅

2. 내부 ssh 접속 테스트

3. 외부에서 ssh 접속 가능하도록 하는 세팅

 

WSL ubuntu에 ssh 세팅

1. ubuntu 실행 및 net-tools 설치

sudo apt-get install net-tools 입력 (sudo apt update 를 먼저 하는 것을 잊지 말자)

2. ssh 설치

sudo apt-get install openssh-server 입력

설치를 한 적이 없는 것 같은데 설치가 되어있다.

 

3. ssh 설정 세팅

sudo nano /etc/ssh/sshd_config 입력

아래와 같은 창이 뜰 것이다. (빈 칸이라면 오타 또는 오류)

이곳에서, 아래와 같은 부분을 찾아서 주석해제 및 수정을 한다.

(1) Port 22 --> 기본 접속 포트는 22번으로 일반적으로 기본 포트 사용은 보안상 위험하므로
주석 해제 후 원하는 번호로 변경 (안해도 되긴 함)

(2) PasswordAuthentication no --> 아마 주석이 해제되어 있을텐데 그대로 no 를 yes로 바꿔준다.

(3) 그 외 설정들은 목적에 따라 추가로 변경하면 된다. 이 글에서는 간단히 여기까지만 변경하겠다.

(4) ctrl + x 를 눌러 변경 저장

 

4. Key 생성

sudo ssh-keygen -A 입력

 

5. ssh service 시작

sudo service ssh start 입력 --> WSL 에서는 컴퓨터를 껐다가 키는 등의 작업 후 ssh를 수동을 다시 켜줘야 한다.

여기까지 진행함으로써 ssh 설정은 마무리 되었다.

 

내부 ssh 접속 테스트

1. powershell 실행 후 ssh ubuntu 계정@localhost -포트번호 입력

yes/no를 입력하도록 출력이 될 것이고 yes를 입력하면 접속!

 

외부에서 ssh 접속가능하도록 세팅

1. 관리자 모드로 실행된 powershell에서
Get-ExecutionPolicy 입력해 보면 Restricted라고 뜰 것이다.

이후 Set-ExecutionPolicy RemoteSigned 입력

y를 입력하여 완료.

 

2. 공유기 포트 포워딩 세팅

공유기 관리자 모드에 접속하여 ssh 포트로 지정한 번호를 열어준다.

3. 윈도우-WSL 외부 접속 허용 세팅

WSL은 매번 접속때마다 (컴퓨터를 껏다가 킬 경우) ubuntu에 할당되는 ip 주소가 변한다.

이 부분은 윈도우의 방화벽을 열어주는 세팅을 해야한다는 점에서 매우 불편한 점인데

다행스럽게도 코드로 해결하는 방법을 찾았다.

wsl_port.txt
0.00MB

위의 wsl-port.txt 파일을 받아서 열어보면 아래의 사진과 같은 코드가 있을 것인데

여기서 $ports=@(포트번호); 부분에 외부로 열어줄 번호 (위에서 설정한 ssh 번호)를 입력해 준다.

Ex), $ports=@(26501, 1234, 4321);

그런 후 저장을 하는데 확장자를 ps1으로 저장한다.

Ex), wsl_port.ps1

해당 파일을 관리자 권한으로 실행된 powershell로 실행하여야 하므로 적절한 경로로 옮겨준다.

필자의 경우 C 드라이드 바로 밑에 넣었다.

powershell을 관리자 모드로 실행하면 아래와 같은 화면일 것이다.

여기서 cd / 입력을 하면 C 드라이브로 올라가게 되고 ls를 해보면

아래와 같이 C 드라이브 바로 아래 위치한 폴더와 파일이 보인다.

여기서 .\wsl_port.ps1을 입력한다.

아마 처음 입력하면 붉은색 메시지와 함께 창이 쭉 내려갈텐데

그러면 다시 위 명령어를 입력하여 준다.

아래의 사진처럼 출력이 된다면 완성.

 

4. ssh 접속

wsl ssh 외부 접속을 위한 세팅을 완료하였으므로

외부에서 접속할 client 컴퓨터의 powershell에서
ssh -l (소문자 L) ubuntu 계정 명 DDNS주소 또는 외부ip주소 -p ssh 포트번호 를 입력해 준다.

Ex), ssh -l honbul honbul.ddns.com -p 26501

입력하면 내부 접속 세팅을 할때와 같은 글이 출력되고 yes를 입력하면 접속!

 

끝.