기록

[WSL]ssh wsl 접근 설정 하기

solutionMan 2024. 8. 9. 18:46
반응형

 


*WSL 설치가 되어있다는 가정하에 진행 합니다.

 프로세스 과정

1.wsl ssh 서버 설치

2.wsl ssh 서버 설정

3.SSH 공개키 적용

4.윈도우 방화벽 설정

5.윈도우 포트와 WSL 포트 포워딩 설정

6.테스트 및 사용


<WSL SSH 설정>
OpenSSH 서버 설치

sudo apt remove openssh-server
sudo apt update
sudo apt install openssh-server

기존에 설치되었던 과거것을 없애고 새로 하는 경우로 진행(변수 제거 용)


OpenSSH 서버 설치 확인 차원 ( SSH 서버 시작 )

sudo service ssh start

 

sshd 서비스가 실행 중인지에 대한 정보를 출력

sudo service ssh status

활성화 상태 (running): SSH 서버가 실행 
비활성화 상태 (inactive): SSH 서버가 실행 중이지 않습니다.

 

위 상황까지 왔을때 활성화가 잘되었다면 아래 실행

SSH 서버 자동 시작 설정

sudo systemctl enable ssh

 


< SSH 서버 설정>

sudo vi /etc/ssh/sshd_config



ssh 서버 포트 변경(기본 22)

 

수정 저장 입력 부분은 vi로 진행한것임으로 vi 명령어 참고

 

 

기타 옵션 (굳이 설정은 상황에 맞춰서)

# 특정 IP 주소만 허용
AllowUsers username@IP_address

# 루트 로그인 활성화 여부 처리
PermitRootLogin {yes/no}

# 비밀번호 인증 비활성화 처리 
PasswordAuthentication {yes/no}
sshd_config 파일에서 다음의 내용 수정
  • SSH 접속 포트 : 기본 포트인 22번이 외부망에 개방되면 무작위 접속 시도가 끊임없이 들어오므로 바꿔주는 것이 권장된다. 공유기 하단에 호스트를 위치시켜 포트포워딩을 사용하는 방법도 있다. 포트를 바꿨다면 호스트의 방화벽 설정 또한 수정해야 한다.
  • 키 인증 접속 허용 여부 : 비밀번호를 입력하는 과정이 물리적으로 노출될 수 있으니 공개키/개인키 쌍을 생성하여 개인키를 가진 단말에서만 접속을 허용하는 것이 권장된다.
  • 비밀번호 사용 접속 허용 여부 : 위와 마찬가지의 이유로, 가급적 키 인증 접속만 허용하고 비밀번호 사용 접속을 차단해두는 것이 좋다.
  • 비밀번호 없이 접속 허용 여부 : 비밀번호가 없으면 보안 셸을 사용할 이유가 없다. 반드시 차단해두자.
  • 루트(관리자) 접속 허용 여부 : 루트를 개방하는 것은 시스템을 완전히 개방하는 것이다. 루트 접속은 차단하고 일반 계정으로 접속해 슈퍼유저 권한을 받아 사용하는 습관을 들이자.
  • 공개키 파일 이름 : 기본적으로 authorized_keys를 사용하도록 되어 있다. 다른 파일 이름을 사용하고 싶을 경우 변경해도 무방하지만, 타인의 계정도 같은 파일 이름을 사용하도록 해야 한다.


SSH 서버 재시작 
변경 사항 저장 및 반영을 하기 위해서 

sudo service ssh restart

 

 

서버 적용 확인 체크 방법1

netstat -an | grep {ssh 적용 포트}

 

위 명려어 결과 가 나왔을때의 상태 값이 LISTEN인지 확인 

 

 

서버 적용 확인 체크 방법2

윈도우에서 telnet을 이용하여 해당 포트가 열렸는지 확인을 진행한다.

 

telnet {wslIp} {SSL 서버포트}

 

 

Open-SSH 블라블라가 나온다면 윈도우에서 wsl의 ssh 서버로 접근이 가능하다는 것이다.

wsl 주소는 ifconfig 명령어를 통해서 확인 


<SSH 공개키 적용>

 

1. 나의 로컬 공개키 만들기

$ ssh-keygen -t <암호화 알고리즘> -b <암호화 비트>
Generating public/private rsa key pair.
Enter file in which you want to save the key (<계정의 홈 디렉토리>/.ssh/id_rsa):   <- 일반적으로 기본값을 그대로 사용한다
Enter passphrase (empty for no passphrase):   <- 비워도 문제는 없지만, 개인키 파일이 유출될 경우를 대비해 비밀번호를 걸어두도록 하자
Enter same passphrase again:   <- 위의 비밀번호를 재입력한다
Your identification has been saved in <홈 디렉토리>/.ssh/id_rsa.  <- 개인키 파일. 파일 이름에 암호화 알고리즘 이름이 붙고, 확장자가 없다
Your public key has been saved in <홈 디렉토리>/.ssh/id_rsa.pub.  <- 공용키 파일. 마찬가지로 암호화 알고리즘 이름이 붙고, pub 확장자가 있다
The key fingerprint is:
SHA256:<SHA256 해쉬 값> <계정 이름>@<생성작업을 진행한 컴퓨터의 hostname>
The key`s randomart image is:
+---[RSA 2048]----+       <-- 알고리즘 종류
|   .. +o+.       |
|  .  o.o.o.      |
| . ..+..... .    |
| o.=+ .+.  o     |
| o=oo.BooS  .    |       <-- 생성된 키를 표현하는 텍스트 그림
| .ooo.o%+..  E   |
|   .o== o.       |
|    o.+          |
|    +*           |
+----[SHA256]-----+       <-- 해쉬

 

 

공개키 생성 확인 위치는 만들어질 때 로그에 나오니 참고 

일반적으로 사용자의 홈디렉토리의 {사용자}/.ssh

id_rsa(개인키, privateKey)

id_rsa.pub(공개키 , publicKey)

 

 

2. 공개키 ssh 서버가 되는 wsl에 넣어주기

 

wsl 서버에서 아래의 사항 진행 

mkdir -p ~/.ssh
# /.ssh가 없는경우

chmod 700 ~/.ssh
#권한 설정 진행

echo {만들어진 공개키 값} >> ~/.ssh/authorized_keys
# 내 로컬 공개키를 해당 서버에 저장하기 위해서

chmod 600 ~/.ssh/authorized_keys
#권한 설정 진행

 


<윈도우 방화벽 설정>

특정 포트는 SSH 서버 포트와 동일하게 열어주어야 한다.

 

 

이름과 설명은 자유롭게 작성

위 과정이 끝나면 작성한 이름으로 열린 포트가 있는지 확인을 한다.


<윈도우 포트와 WSL 포트 포워딩 설정>

 

이제 우리가 해야 할 것은 포트 포워딩이다

 

WSL에서 사용할 SSL서버 포트(설정 완료) 

포트 포워딩(진행)

윈도우 포트 방화벽 해제(설정완료 )

 

 

PowerShell에서 실행

netsh interface portproxy add v4tov4 listenport=${윈도우 개방포트} listenaddress=${연결받을주소} connectport=${wsl 주소} connectaddress=${ssl서버포트}

 

예시

netsh interface portproxy add v4tov4 listenport=22 listenaddress=0.0.0.0 connectport=22 connectaddress=127.0.0.1

 

 

확인법

netsh interface portproxy show all

 

잘못 만들었을시 삭제방법

netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0

<SSH 접속>

ssh 유저명@윈도우 서버 아이피
  • -p: 원격 서버의 SSH 포트 번호를 지정합니다.
    기본 포트 번호인 22번이 아닌 다른 포트 번호를 사용하는 경우에 입력합니다.

참고한 글들

 

SSH Key 생성하기

인증에 사용되는 SSH Key 생성법에 대하여 알아봅니다. 윈도우에서 생성 msysgit을 이용한 방법 윈도우에서 Git 사용을 위해 msysgit을 사용중이라면 간단하게 생성할 수 있다. ssh-keygen -t rsa putty 를 이

webdir.tistory.com

 

 

OpenSSL

널리 사용되는 대부분의 대칭 / 비대칭 암호화 프로토콜을 구현한 오픈 소스 라이브러리로, 가장 대표적으로는

namu.wiki

 

 

[윈도우] Windows SSH 공개키 생성

윈도우10 SSH 공개키 생성 윈도우10에서 ssh 공개키를 생성하고 위치를 확인한다. 윈도우 SSH 공개키 생성 ssh 키 만들기 윈도우10에서 공개키를 생성하는 방법은 리눅스와 매우 유사하다. PowerShell 을

makepluscode.tistory.com

반응형