박성범 Simon Park

WSL에서 SSH 서버 열기

학교에서 아이패드로 코딩하기

SSH(Secure Shell)는 안전하게 원격 접속을 하기 위해 사용하는 프로토콜이다. 윈도우 데스크탑에서 SSH 서버를 열면 아이패드에서 원격으로 데스크탑 쉘에 접속을 할 수 있다. WSL(Windows Subsystem for Linux)은 윈도우의 서브시스템에 리눅스를 탑재하는 기술이다. 아직 부드럽게 작동하지 않는 부분들이 조금 있지만, 마이크로소프트에서 WSL에 신경을 많이 쓰고 있기 때문에 충분히 쓸만하다.

내 목적은 학교에서 아이패드로 집에 있는 윈도우 10 데스크탑에 원격 접속해 코딩을 하는 것이었다. 우선 데스크탑에 WSL 우분투 16.04를 설치했고, 아이패드에는 터미널 앱 Termius를 설치했다.

openssh-server 재설치

SSH 서버를 열기위해서는 openssh-server라는 패키지가 필요하다. WSL 우분투 16.04 기준으로 SSH 서버를 실행하는 명령 service ssh start를 실행해보면 몇가지 에러가 나타난다. 기본 설치되어있는 openssh-server의 문제이므로, 재설치해준다.

$ sudo apt remove openssh-server
$ sudo apt install openssh-server

sshd_config 파일 수정

sshd_config는 SSH 설정 파일이다. SSH 서버를 열기 전에 이 파일을 약간 수정해줘야 한다. root 권한이 필요하므로, 자신의 계정에 root 권한이 없다면 root 계정으로 전환하고 /etc/ssh/sshd_config 파일을 연다.

$ sudo su - root
$ vi /etc/ssh/sshd_config

여기서 바꿔야 할 부분은 두 곳이다. (우부투 18.04 버전이라면 Port 값만 수정해도 된다.)

저장 후 SSH 서버를 재시작해준다.

$ sudo service ssh --full-restart

포트포워딩

서버 컴퓨터가 공유기에 연결되어 있는 상황이므로 외부에서 접속하려면 포트포워딩을 해줘야한다. 공인 아이피는 공유기에 할당되는데, 공유기에 연결된 컴퓨터나 휴대폰 등의 디바이스에는 192.168.0.x 형태의 사설 아이피가 할당된다. 따라서 외부망에서 공인 아이피를 입력해도 이 서버 컴퓨터로는 접속을 할 수가 없다.

ipTIME을 사용 중이라면 아래 과정을 따르면 된다. (제조사마다 설정 인터페이스가 조금씩 다르다.)

  1. 브라우저에 공유기의 공인 아이피 또는 192.168.0.1을 입력한다.
  2. 로그인 후 '고급 설정 > NAT/라우터 관리 > 포트포워드 설정’에 들어간다.
  3. 내부 아이피 주소는 '현재 접속된 PC의 IP 주소로 설정’으로 설정한다.
  4. 프로토콜을 TCP로 설정한다.
  5. 외부 포트는 sshd_config 파일에서 설정한 Port 값으로 설정한다. (2222 ~ 2222)
  6. 내부 포트도 똑같이 설정한다. (2222 ~ 2222)
  7. 규칙 이름은 마음대로 정한다.
  8. 좌측 상단의 '저장’을 클릭한다.

공유기 포트포워딩은 검색해도 많이 나오고, 생활코딩 강의도 잘 되어있다.

방화벽 설정

SSH 포트가 방화벽으로 막혀있을 경우 접속이 불가능하다.

  1. '제어판 > 시스템 및 보안 > Windows Defender 방화벽’에 들어가 '고급 설정’을 클릭한다.
  2. 인바운드 규칙을 클릭하고 '새 규칙’을 클릭한다.
  3. 규칙 종류는 '포트’를 선택한다.
  4. 프로토콜은 TCP, '특정 원격 포트’는 앞서 설정한 Port 값으로 설정한다. (2222) 이름은 마음대로 정한다.
  5. 아웃바운드 규칙도 마찬가지로 해준다.

SSH 서버 접속

WSL bash를 종료하면 SSH 서버도 닫혀버린다. 다시 열고 싶을 때는 아래 명령을 실행하면 된다.

$ sudo service ssh start

PuttyTermius 같은 프로그램을 이용해 접속 테스트를 해보자. 서버와 같은 컴퓨터에서 접속하는 경우 hostname은 서버의 공인 아이피로, port는 앞서 설정한 2222로 두면 된다.

이어서 외부망의 넷북에서 테스트했고, 이후 아이패드에서도 테스트했는데 잘 됐다! 이제 학교에 노트북들고 가지 않고 프로그래밍을 할 수 있게 되었다.