Home Lab 구축기 (2): WSL 설정

최규민

최규민

2025년 6월 11일3 min read

Home Lab 구축기 (2): WSL 설정

지난 포스트에서는 포트 포워딩, IP 고정, DDNS 설정에 대해 알아봤습니다.

이제 Windows Subsystem for Linux, WSL을 설정할 시간입니다.

🐧WSL 설정

WSL; Window Subsystem for Linux란?

https://www.packtpub.com/en-us/product/windows-subsystem-for-linux-2-wsl-2-tips-tricks-and-techniques-9781800562448
https://www.packtpub.com/en-us/product/windows-subsystem-for-linux-2-wsl-2-tips-tricks-and-techniques-9781800562448

이 튜토리얼을 읽고 계신 분들이라면 WSL에 대한 기본적인 이해를 갖추고 계실 것이라고 생각하기 때문에, 위의 다이어그램으로 퉁치겠습니다😶

WSL 설치

Powershell을 열고 아래와 같이 입력합니다(관리자 권한으로 열어야 될 수도 있음).

bash
wsl --install

이러면 Ubuntu의 최신 버전이 설치됩니다. 특정 버전을 원한다면 아래 커맨드를 입력하세요.

bash
wsl --install -d <배포판명>

앞으로 우리는 wsl 터미널, 즉 우분투 터미널을 사용할 것입니다.

윈도우키를 누르고 ubuntu를 검색하거나, 파워쉘에서 wsl을 타이핑 하여 실행하면 됩니다.


SSH 세팅

openssh-server 설치

bash
sudo apt update
sudo apt-get install openssh-server

포트 번호 설정

bash
sudo nano /etc/ssh/sshd_config

을 이용해 nano 에디터로 sshd_config 파일을 엽니다.

이후 Port를 찾아, 포트 포워딩에 설정한 내부 포트로 변경합니다.

bash
PubkeyAuthentication yes

도 설정해줍시다.

설정을 마쳤다면 ctrl+o로 저장하고, ctrl+x로 nano를 나가면 됩니다.

openssh-server 설정

openssh-server의 시작/상태확인/종료 커맨드는 아래와 같습니다.

bash
sudo service start
sudo service status
sudo service stop

sudo service로 제어가 되지 않는다면, Ubuntu 22.10 이후 SSH가 socket-based-activation으로 바뀌었기 때문일 것입니다.

이렇게 되면 sudo systemctl 커맨드를 통해 제어해야 하는데, WSL2는 이 방식이 완전히 지원되지 않을 수 있다고 합니다. 따라서 아래 커맨드를 이용해 기존의 service 방식으로 전환해줍시다.

bash
sudo systemctl disable --now ssh.socket
sudo rm -f /etc/systemd/system/ssh.service.d/00-socket.conf
sudo rm -f /etc/systemd/system/ssh.socket.d/addresses.conf
sudo systemctl daemon-reload
sudo systemctl enable --now ssh.service

이제 다시 서버를 시작하면

bash
sudo service start
sudo service status

이런 식으로 나오면 성공입니다! 🥳

bash
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-06-03 18:14:44 KST; 24min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 7190 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 7192 (sshd)
      Tasks: 1 (limit: 9472)
     Memory: 3.7M (peak: 20.1M)
        CPU: 224ms
     CGroup: /system.slice/ssh.service
             └─7192 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

sudo 비밀번호 없애기

추가로 ssh 서버 관련 커맨드 사용 시, startstopsudo를 사용해야 합니다. sudo는 비밀번호를 요구하는데, 추후 불편해질 수도 있으니 이 설정을 꺼줍시다.

bash
sudo visudo
# 파일 끝에 추가 (your_username을 실제 사용자명으로 변경)
your_username ALL=(ALL) NOPASSWD: /usr/sbin/service ssh start, /usr/sbin/service ssh status

ssh 서버 자동 실행 설정

딥러닝 서버(데스크탑)가 켜질 때마다 자동으로 ssh 서버가 함께 실행되도록 설정해줍시다.

원래 이 설정은 대부분의 블로그에서 windows에서 .bat 파일을 시작 프로그램 폴더에 넣어주는 것으로 설정합니다.

그러나 이 포스트에서는 더욱 간단한 방법을 소개하겠습니다.

먼저 systemd를 활성화 합니다.

bash
sudo nano /etc/wsl.conf

이후 아래와 같은 내용을 추가해줍니다.

bash
[boot]
systemd=true

ctrl+o를 통해 저장, ctrl+x를 통해 nano 편집기를 빠져나온 뒤, 아래 커맨드를 입력합니다.

bash
sudo systemctl enable ssh

이제 데스크탑이 부팅 될 때마다 자동으로 ssh 서버가 실행됩니다.

(점검) net-tools 설치

bash
sudo apt update
sudo apt-get install net-tools

SSH포트가 열려 있는지 확인하기 위해 아래 커맨드를 사용합니다.

bash
sudo netstat -tlnp | grep :{포트 번호 숫자만 입력}
bash
tcp        0      0 0.0.0.0:{포트}      0.0.0.0:*      LISTEN      303/sshd: /usr/sbin
tcp6       0      0 :::{포트}           :::*           LISTEN      303/sshd: /usr/sbin

이런 식으로 나오면 성공입니다.

다음 포스트에서는 Windows 설정을 알아보겠습니다🤗


#🌐Infra#🌳Environments

Series · Home Lab 구축기

2 / 5
최규민

최규민

AI Engineer

사파식 AI-Native LLM SWE