WSL 기반의 우분투를 설치해서 사용해보면 알겠지만, 기본적인 구성요소들은 설치되어 있다. python도 되고, perl은 apt-get install을 통해서 받으면 된다. 그런데, 다른 PC에서 이 Linux의 기능을 사용하고 싶을 때가 있는데, 분명 Open SSH 서버가 설치되어 있음에도 불구하고 putty로 연결할 수 없었다.

혹시나 해서 아래의 명령을 넣어 확인해봤는데, openssh 서비스를 실행해 봤더니, 설치만 된 것이지 실제 실행은 안된 것이였다.

지금까지 리눅스 쓰면서 이 부분에 대해서 확인을 안했던 이유가, 대부분 Ubuntu를 설치하거나 OpenSSH 서버를 설치 후 실행을 하면 자동으로 적용되었던 부분이 안되어있는 것 같았다.

지금부터 이 SSH를 활성화 해보도록 한다.

1. SSH용 host key 적용

서비스를 실행 하면 위의 이미지 처럼 나오는 단서는 "sshd: no hostkeys available -- exiting." 이다 . 즉 hostkey가 없어서 실행을 못한다고 한다. 이 문제를 검색해 보자 다음 사이트를 볼 수 있었다.
www.garron.me/en/linux/sshd-no-hostkeys-available-exiting.html

 

sshd: no hostkeys available -- exiting

sshd: no hostkeys available -- exiting Written by Guillermo Garron Date: 2020-05-11 19:05:00 00:00 Today while trying to start ssh server on my WSL Ubuntu installation, I got this error: sshd: no hostkeys available -- exiting After searching on the web, I

www.garron.me

여기서 "ssh-keygen -A" 명령을 넣으라고 나왔다. 그래서 다음과 같이 명령을 넣었다.

sudo ssh-keygen -A

그러면 새로운 host 키가 생성되었다고 표시된다. 이제 서비스를 다시 시작하자

sudo service ssh restart

그러면, 이제 ssh 서비스는 정상적으로 실행된다.

 

2. 암호 기반 로그인 처리

서비스가 활성화 되었으니, 이제 PuTTY로 연결해보자. 연결할 때의 주소는 localhost 포트(연결 대상을 ssh로 하면 자동으로 22번이 됨)는 SSH로 하면 된다. 그러나 아이디를 넣는 순간 다음과 같이 뜨면서 더 이상 진행되지 않는다.

이 문제는 SSH 서버 설정 때문이다. 기본적으로 SSH가 설치되면, 로그인 처리 없이, 인증서(SSH용 SSL 인증서)만으로 로그인이 되도록 설정되어 있어서 그렇다. 이 설정이 기본값으로 되어 있어, 아이디를 넣는 순간 PuTTY에서는 위와 같은 오류를 내며 연결이 되지 않는다.

이를 설정하려면 다음 명령을 입력해서 설정 값이 담긴 텍스트를 열어야 한다.

sudo vi /etc/ssh/sshd_config

약 58번째 줄을 보면 PasswordAuthentication 이라는 항목이 보이는데, no로 되어 있는 것을 yes로 변경한다. 즉 암호 기반의 연결을 지원하도록 하는 설정이다.

다시 서비스를 다시 시작한다.

sudo service ssh restart

 

그러면 PuTTY를 이용해 localhost:22 로 다시 접속하면 정상적으로 접속됨을 확인할 수 있다.

728x90

+ Recent posts