개요
(빠른 적용을 위한 단계별 속성 가이드는 이 문서의 끝부분을 참고하세요.)
SSH 프로토콜을 이용하여 윈도우 시스템에 접속하는 방법은 윈도우용 SSH 서버 프로그램을 설치하는 방법이 있을 수 있고 최근 윈도우 10에서 제공하는 리눅스 하위 시스템을 설치 후 이 시스템에 접근하는 방법이 있습니다.
Windows 10 레드스톤1(RS1, 1607)부터 그동안 베타로 지원하고 있던 리눅스 시스템을 하위 시스템으로 제공하고 있습니다.
- 제3자가 제공하는 윈도우용 SSH 서버 설치 접속
- 윈도우 10의 SSH Proxy 설치 후 CMD 콘솔에 접속
- 윈도우 10의 리눅스 시스템에 SSH 서버 설치 후 접속
2018년 10월 1일 현재는 공식 빌드로는 레드스톤4이며 이 글에서 사용되고 있는 윈도우는 레드스톤 3(1709)입니다.
아래 설명은 위 세번째 리눅스 하위 시스템을 설치 후 SSH 사용에 대한 내용입니다.
리눅스 하위 시스템 설치
- 사용 중인 윈도우 10의 버전을 확인하여 리눅스 하위 시스템을 지원하는 버전으로 업그레이드합니다.설정 -> 시스템 -> 정보
- appwiz.cpl 명령을 실행하여 ‘프로그램 및 기능’을 실행합니다.
Windows 기능 켜기/끄기를 실행한 후 ‘Linux용 Windows 하위 시스템’을 찾아 설치합니다.
- 시스템을 다시 시작하면서 하위 시스템 설치를 위한 설정을 마칩니다.
윈도우 키 + R을 눌러 나오는 실행 대화 상자에서 ‘bash’ 명령을 실행합니다.
- A실제로는 하위 시스템 패키지가 설치되지 않았습니다.
웹 브라우저로 ‘https://aka.ms/wslstore’를 방문하여 패키지 설치를 마무리합니다.
- Ubuntu 리눅스를 중심으로 설명을 진행하므로 Ubuntu를 선택한 후 설치를 진행합니다.
- 설치를 마친 후 사용자 이름과 암호를 설정해야 합니다. 윈도우 사용자 이름이 아니어도 좋습니다.
여기에서 입력한 사용자가 Ubuntu의 기본 관리자가 되어 sudo 명령에 사용됩니다.
- 이로써 윈도우 10에 Ubuntu 리눅스 하위 시스템 설치가 완료되었습니다.
이제부터는 Ubuntu의 일반적인 사용법에 따라 필요한 패키지를 설치 후 사용하면 됩니다.
SSH 서버 설치 및 운용
이 글을 쓰기 위해 설치한 Ubuntu 버전은 18.04 LTS(Bionic Beaver)이며 초기 설치 시 OpenSSH 서버가 설치되어 있지만 몇가지 필요한 설정을 해야 합니다.
- 호스트 키 생성
‘ssh-keygen -A’ 명령으로 호스트 키가 /etc/ssh 경로에 생성되도록 합니다.
test@DESKTOP-B38MLS1:/etc/ssh$ sudo /etc/init.d/ssh stop test@DESKTOP-B38MLS1:/etc/ssh$ sudo ssh-keygen -A
- sshd_config 설정
기본값으로 공개 키 인증만 허용하고 있습니다. 공개 키 인증에 대해서는 Xshell 도움말을 참고하시기 바랍니다. 다음은 보안상으로는 권장하고 있지 않지만 설치 초기 원활한 접속을 해 보기 위해 사용자 암호를 허용해 보겠습니다. 다음은 이를 위한 sshd_config 설정입니다.
test@DESKTOP-B38MLS1:/etc/ssh$ sudo vi /etc/ssh/sshd_config … # To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes … test@DESKTOP-B38MLS1:/etc/ssh$ sudo /etc/init.d/ssh start
호스트 키로서 rsa 키와 ecdsa 키를 생성하지 않아 해당 키를 적재할 수 없다는 메시지가 나왔습니다. 해당 키를 생성해 넣거나 sshd_config에서 해당 키 사용을 하지 않겠다는 설정을 하면 위 메시지는 나오지 않습니다. SSH 사용에는 문제가 없는 내용입니다.
Xshell에서 하는 접속
테스트를 위해 현재 시판 중인 Xshell 6.0을 사용하였습니다.
- 접속
[C:\~]$ ssh localhost Host 'localhost' resolved to ::1. Connecting to ::1:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. …
- 처음하는 접속이므로 해당 서버의 호스트 키에 대한 정보를 저장할지 여부를 묻습니다. ‘한 번 수락’이나 ‘수락 및 저장’을 선택하여 접속을 진행합니다.
- Ubuntu 설치 시 생성하였던 사용자 이름을 입력합니다. Ubuntu 설치 시 생성하였던 사용자의 암호를 입력합니다. 위 sshd_config에서 암호 인증을 허용하여 ‘Password’란이 활성화되었습니다.
- 다음은 최종 로그인이 완료된 후의 화면입니다.
- 참고로 윈도우 파일 시스템은 /mnt/c에 마운트되어 있습니다.
test@DESKTOP-B38MLS1:~$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 40G 15G 25G 38% / none 40G 15G 25G 38% /dev none 40G 15G 25G 38% /run none 40G 15G 25G 38% /run/lock none 40G 15G 25G 38% /run/shm none 40G 15G 25G 38% /run/user C: 40G 15G 25G 38% /mnt/c test@DESKTOP-B38MLS1:~$
속성 단계별 가이드
- 윈도우 10 레드스톤 1 이후 버전 설치
- ‘프로그램 및 기능 => Windows 기능 켜기/끄기’에서 ‘Linux용 Windows 하위 시스템’ 설치
- 웹 브라우저에서 ‘https://aka.ms/wslstore’ 방문 후 Ubuntu 선택하여 설치 진행 => bash 셸 윈도우가 실행되면서 설치가 진행됨.
- bash 셸에서 호스트 키 생성. 암호 입력하지 않아야 함.
test@DESKTOP-B38MLS1:$ sudo ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): /etc/ssh/ssh_host_ed25519_key Enter passphrase (empty for no passphrase): Enter same passphrase again: …
- /etc/sshd_config를 수정하여 Password 인증 허용(선택)
test@DESKTOP-B38MLS1:$ sudo vi /etc/ssh/sshd_config … # To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes …
- ssh 서버 구동
test@DESKTOP-B38MLS1:$ sudo /etc/init.d/ssh start
- Xshell에서 접속 후 사용
[C:\~]$ ssh localhost Host 'localhost' resolved to ::1. Connecting to ::1:22... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. …