Windows10 내장 우분투에 ssh 클라이언트로 접속하기

윈도우 10에서 추가된 기능 중 가장 마음에 드는 기능. 윈도우에 내장된 우분투다. 기존의 vm이나 hyper-v로 띄우게 되면 아무래도 성능부분에서 깎이는 것도 많고 이것저것 설치하고 세팅하기 엄청 귀찮지 아니하였던가.

그런데 이러한 우분투를 쓰면서 가장 불만인 부분이 하나있었다. 왜 꼭 CMD 위에서 돌아가야만 하냔 말이다! CMD 위에서 돌아가다보니 색도 우중충하고 뭔가 복사하거나 붙여넣기도 엄청 귀찮은데다가 출력도 괴상하게 나오는 일이 많다 ㅠㅠ 그래서 평소 애용하는 XShell으로 이 우분투에 접속할 수 없을지 찾아보게 되었다.

준비 작업

Run Utility

리눅스에선 데몬 띄우는게 & 하나만 붙이면 될 정도로 간편한데 반해서 윈도우즈는 좀 많이 귀찮다. 이런저런 작업들을 피하기 위해서 나는 Xming의 Run Utility를 사용하였다. 이 프로그램은 간단히 설명하면 콘솔 창을 숨긴 채로 프로그램을 실행할 수 있게 도와주는 유틸리티 프로그램이다.

Homepage http://www.straightrunning.com/XmingNotes/#head-148
Manual http://www.straightrunning.com/projectrun.php
64-bit 다운로드 http://www.straightrunning.com/projectrun/run-x64.zip
32-bit 다운로드 http://www.straightrunning.com/projectrun/run.zip

ubuntu를 닫는 순간 sshd도 종료되기 때문에 항상 하나의 ubuntu 인스턴스는 살려둬야한다. 그래서 Run Utility가 필요하다.

Windows bash 활성화

  1. 제어판 -> 프로그램 및 기능 -> Windows 기능 켜기/끄기 -> Linux용 Windows 하위 시스템 활성화 및 재시작
  2. https://www.microsoft.com/store/productId/9NBLGGH4MSV6 윈도우 스토어에서 우분투 설치
  3. cmd 실행 -> bash

SSH Server 설정하기

sudo apt-get purge openssh-server
sudo apt-get install openssh-server
sudo vi /etc/ssh/sshd_config

sshd_config 파일에서 아래의 옵션들을 찾아서 수정한다. 없다면 추가한다.

UsePrivilegeSeparation no
PermitRootLogin no
PasswordAuthentication yes
AllowUsers [your user name]

여기까지 완료되었으면 sudo service ssh restart를 실행하여 localhost:22로 ssh 접속이 잘 되는지 확인한다. 만약에 안 된다면 위의 절차를 재시도해보고 방화벽도 확인해본다.

여기까지만 해도 사용은 가능하지만 재부팅할 때마다 불필요한 ubuntu 창을 하나 띄워서 service를 시작하고 그대로 놔둬야하는 불편함이 생긴다. 그러므로 한가지 설정을 더 해서 윈도우가 시작하면 자동으로 sshd도 실행되도록 바꾸자.

작업 스케쥴러 설정하기

  1. 제어판 -> 시스템 및 보안 -> 관리 도구 -> 작업 스케줄러 실행
  2. 새로 뜬 창 우측에서 작업 만들기 클릭
  3. 트리거 탭으로 이동
  4. 새로 만들기 버튼을 눌러서 트리거 생성. 이 때, 작업 시작 항목에 로그온 할 때, 워크스테이션 잠금 해제 시 각각 하나씩 추가
  5. 조건 탭으로 가서 컴퓨터가 배터리 전원으로 전환되는 경우 중지부분 해제
  6. 설정 탭으로 가서 다음 시간 이상 작업이 실행되면 중지 부분 해제, 작업이 이미 실행중이면 기존 인스턴스 중지로 수정
  7. 동작 탭으로 가서 새로 만들기 버튼 눌러서 새 동작 만들기로 이동. 프로그램/스크립트에 아까 다운로드받아둔 Run Utility의 run.exe를 선택하고, 인수 추가에 bash -c "sudo /usr/sbin/sshd -d" 입력
  8. 확인 눌러서 생성된 것을 확인하고 오른쪽 메뉴에 실행 버튼을 눌러 실행되는지 확인. 실행에 성공하면 외부 터미널에서 ssh 접속 시도하여 정상적으로 접속 가능한지 확인. 접속에 성공했으면 재부팅해도 정상적으로 접속 가능한지 확인

results matching ""

    No results matching ""