사용자 도구

사이트 도구


windows:wsl:openssh_server

WSL Ubuntu Linux OpenSSH Server

Windows 10의 SSH 서비스 중지

  • services.msc 실행
  • SSH Server Broker, SSH Server Proxy 서비스가 있을 경우 중지하고 사용 안함 처리

Linux에서 openssh-server 설치

sudo apt-get install openssh-server

/etc/ssh/sshd_config 설정

# 모든 다른 IP에서의 요청 받음
ListenAddress 0.0.0.0

# wsl이 chroot() 호출을 지원하지 않기 때문
UsePrivilegeSeparation no

# 비밀번호 기반 인증 활성화
PasswordAuthentication yes

부팅시 자동 시작 지정

  • 원래는 sudo service ssh start를 하면 되지만, 이 경우 WSL은 백그라운드 프로세스 돌리는 것을 지원하지 않기 때문에 bash 가 종료되면 서비스도 자동 종료되어 버린다. 따라서 Windows 부팅시에 bash 창과 함께 ssh 서버를 띄우고 창을 그대로 놔두는 방식을 사용해야 한다.
# sudo 없이 실행가능하게 처리
# /etc/sudoers 에서 NOPASSWD 옵션을 주는 방식으로 해도 되긴 함. 이 경우 sshd 명령 앞에 sudo 추가 필요.
sudo chmod 4755 /usr/sbin/sshd
  • 기본적으로는 C:\Windows\system32\bash.exe-c “/usr/sbin/sshd -D”를 시작 프로그램에 등록하면 됨. 하지만 bash 창이 계속 떠있게 되어 보기에 안 좋다.
  • start_sshd.vbs 파일 생성. 여기서 ws.run의 마지막 인자 0이 창을 숨기는 역할을 한다.
    set ws=wscript.createobject("wscript.shell")
    REM ws.run "C:\Windows\System32\bash.exe -c '/usr/sbin/sshd -D'",0 -- 처음에는 이걸로 해서 됐으나 Ubuntu 18.x 후 버전업 후에 안돼서 아래로 변경
    ws.run "C:\Windows\System32\bash.exe -c 'sudo service ssh start'",0
  • 위 vbs 파일을 shell:startup을 실행하여 뜬 폴더에 저장하면 부팅시 시작된다.

Locale 지정

  • ssh 접속시 한글 등 유니코드가 올바로 보이지 않았다. 아래 작업 후 재접속하면 유니코드가 올바로 표기된다.
    sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

public key 등록

  • ~/.ssh/authorized_keys 파일에 로그인에 사용할 public key를 등록해둔다.
  • chmod 600 ~/.ssh/authorized_keys 로 권한 설정해둔다.
  • Putty pageant 에 해당 키의 private key를 등록해두면 putty로 로그인 없이 접근가능해진다.
windows/wsl/openssh_server.txt · 마지막으로 수정됨: 2019/01/08 17:46 저자 kwon37xi