티스토리 뷰

SSH는 원격 접속을 위한 프로토콜로, SSH 서버를 이용하면 외부 터미널에서 서버로 원격 접속을 할 수 있다. 심지어 아이패드로도 데스크탑에 접속할 수 있다는 의미다. 단, SSH 접속은 터미널을 사용해야 하기 때문에 CLI에 익숙해야 한다. 또한 SSH 서버를 통한 개발이 목적이라면 당연히 vim 사용법을 잘 알고 있어야 할 것이다.

나는 아이패드에 termius를 설치하고, 이를 통해 노트북의 WSL에 SSH 접속을 해보기로 했다. 그럼 WSL Ubuntu 16.04에서 SSH 서버를 열어보겠다.

openssh-server 재설치

SSH 서버를 열기위해서는 openssh-server라는 패키지가 필요하다. 우분투에는 기본적으로 openssh-server가 설치되어 있지만, WSL 환경에서는 왠지 제대로 작동하지 않는다. (SSH 서버를 실행하는 명령 sudo service ssh start를 실행해보면 몇가지 에러가 나타날 것이다.)

재설치해주자:

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

sshd_config 수정

sshd_config는 SSH 설정 파일인데, 이 파일의 내용을 약간 수정해줘야 한다. root 권한이 필요하므로, 자신의 계정에 root 권한이 없다면 root 계정으로 전환해주자.

$ sudo su - root

그리고 vim을 통해 /etc/ssh/sshd_config 파일을 열어준다.

$ vim /etc/ssh/sshd_config

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

  • Port의 값을 바꿔준다. 디폴트값은 22일텐데, 이는 윈도우에서 이미 사용 중인 포트이기 때문에 WSL에서는 다른 값으로 바꿔줘야 한다. 적당히 2222로 해줬다.
  • PasswordAuthentication의 값을 yes로 바꿔준다. 패스워드 인증을 사용하도록 설정하는 것이다.

저장 후 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. 좌측 상단의 '저장'을 클릭한다.

공유기 포트포워딩은 검색해도 많이 나오고, 생활코딩 강의도 잘 되어있다. 집 밖에서도 내 컴퓨터에 접속하기 위해선 필수다.

방화벽 설정

방화벽을 잊고 있다가 조금 삽질을 했다.

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

SSH 서버 접속

WSL bash를 종료하면 SSH 서버도 닫혀버린다. 다시 열고 싶을 때는 다음 명령어를 입력한다:

$ sudo service ssh start

puttytermius 같은 프로그램을 이용해 접속 테스트를 해보자. 서버와 같은 컴퓨터에서 접속하는 경우 hostname은 서버의 공인 아이피로, port는 앞서 설정한 2222로 두면 된다. 데스크탑을 서버로 쓰는 경우 네이버에 '내 아이피'라고 검색하면 공인 아이피가 나온다.

ssl

넷북에서 테스트했고, 이후 아이패드에서도 테스트했는데 잘 됐다!

댓글
댓글쓰기 폼