2023. 5. 6. 19:08ㆍ리눅스 실제 사용 팁/WSL
작성일 : 2021. 8. 26.
WSL 에 맛들인 사람 중에는 cmd.exe 터미널 보다 xshell 이나 token2shell 같이 탭 또는 다중 창을 띄워놓고 작업하는 것을 좋아하는 부류도 있을 것이다. 내가 그렇다는 소리인데...,
앞서 언급한 프로그램들은 SSH 클라이언트이다. 즉, 이것들을 사용하려면 WSL 에서 sshd (SSH 서비스 데몬) 이 실행되고 있어야 한다.
openssh-server, openssh-client 패키지를 설치하고 ssh-keygen 으로 생성한 공개키를 .ssh/known_hosts 에 추가해서 localhost 로 접속했을 때 무리없이 접속할 수 있도록 해야 한다.
생각만으로는 간단해 보이지만, WSL 에서 sshd 를 실행해놓아도 윈도에서 로그아웃하는 순간 해당 서비스는 끊어진다.
따라서 로그인 할 때마다 sudo service sshd start 를 실행해야만 한다. (아직까지는 이런 노가다를 해야 한다.)
---
순서)
1] /etc/ssh/sshd_config
2] /etc/sudoers
3] sshd 실행 배치파일 만들기
4] 윈도 스케줄러에 3번 결과물 연결하기
---
설정)
1] /etc/ssh/sshd_config 에 다음을 추가한다 (주석처리 되어 있으면 해제)
# (평문암호 방식) 패스워드로 인증할 수 있도록 설정한다.
PasswordAuthentication yes
# AllowUsers (ssh 에 접속을 허용하는 계정을 지정할 수 있다)
AllowUsers jh
2] /etc/sudoers 설정
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# 패스워드 인증을 거치지 않고도 실행가능한 명령을 나열한다.
%sudo ALL=NOPASSWD: /usr/sbin/service, /usr/sbin/sshd
# 또는 이렇게 ALL 로 퉁친다.
%sudo ALL=NOPASSWD: ALL
3] WSL 에서 sshd 를 서비스 데몬으로 실행하기 위한 배치파일 작성하기
명령 구분 | |
cmd.exe /c | 윈도에서 뒤에 오는 명령행을 실행함 |
wsl -e | WSL 환경에서 -e 뒤에 오는 명령을 실행함. |
sudo | 관리자 대행 권한으로 뒤에 오는 명령을 실행함. |
service ssh start | ssh 서비스를 기동. |
※ 아래의 참고 문서에서는 윈도 스케줄러에 바로 등록하는 방식을 쓰고 있지만, 내가 테스트 해본 바로는 긴 명령을 스케줄러에서 제대로 인식하지 못해서 ssh 서비스가 제대로 실행되지 않았다. 그래서 이 문제점을 해결하고자 윈도 배치파일을 작성해서 별도로 참고하는 방식을 쓰게 되었다.
SSH.bat 파일)
배포판을 직접 실행하는 방식 :
@echo off
rem debian 은 설치된 WSL 배포판 실행명령이다.
rem 배포판을 둘 이상 설치하는 경우라면 이렇게 배포판 실행명령을 직접 실행해야 할 것 같다.
%windir%\system32\cmd.exe /c debian run sudo service sshd start
wsl 명령을 실행하는 방식 :
@echo off
rem 윈도에 설치된 WSL 배포판이 한 개만 설치된 경우에는 배포판을 구별할 필요가 없기 때문에
rem 다음과 같이 `wsl -e` 으로 써도 된다.
%windir%\system32\cmd.exe /c wsl -e sudo service ssh restart
둘 중에 하나를 쓰면 됨. 최종적으로 실행하려는 명령은 `sudo service ssh restart` 이기 때문이다.
4] 윈도 스케줄러에 SSH 실행 배치파일을 등록하기
윈도의 "컴퓨터 관리" 에서 "작업 스케줄러" > "작업 스케줄러 라이브러리" 로 이동한다.
새 작업을 등록한다. ("기본 작업 만들기" 또는 "작업 만들기" 둘 다 가능)
5] 윈도에서 재로그인 후, localhost 로 접속해본다.
---------
참고 사이트 :
https://www.illuminiastudios.com/dev-diaries/ssh-on-windows-subsystem-for-linux/
'리눅스 실제 사용 팁 > WSL' 카테고리의 다른 글
[리눅스/윈도] WSL 에서 GUI 띄우기 : VcXsrv (0) | 2023.05.06 |
---|---|
[리눅스/윈도] WSL 에서 윈도용 프로그램 실행하기 (0) | 2023.05.06 |
[리눅스/윈도] token2shell 에서 WSL (localhost) 로 접속하기 (0) | 2023.05.06 |
[윈도우즈/리눅스] WSL 에서 native docker 실행하기 (0) | 2023.05.06 |
[리눅스/윈도] WSL 백업하기 (0) | 2023.04.06 |