티스토리 뷰

Microsoft Windows 로고

HowTo - Windows 10 OpenSSH Client & Server 설치 및 사용 방법

 윈도우 운영체제에서 유닉스 또는 리눅스 시스템을 원격으로 관리할 때 'Windows 프로그램 및 기능''기능 켜기/끄기' 옵션에서 텔넷 클라이언트 기능을 추가한 뒤 타사 프로그램 없이도 명령 프롬프트(CMD)에서 접속했지만, 보안 이슈로 인해 현재 대부분 서버에서 Telnet 사용을 금지하고 대칭키 방식과 비대칭키 방식을 모두 사용하여 인증과 암호화를 할 수 있는 SSH 연결만 허용하고 있습니다.

 

 그러나 Windows Server 2019 또는 Windows 10 1809 부터 설정에서 OpenSSH 클라이언트 및 서버를 설치할 수 있게 되었으며, 2018년 4월 Windows 10 업데이트 이후 SSH Client 기능은 기본적으로 활성화된 상태지만, 여전히 많은 분들은 모르고 있습니다.

 

 따라서 현재까지도 많은 분들이 Putty 와 같은 별도의 추가 프로그램을 사용하고 있습니다. 물론 PuTTY 에는 여전히 더 많은 기능이 있으며, 여러 서버를 관리한다면 PuTTY와 같은 타사 프로그램을 사용하는 것이 훨씬 생산성이 높겠지만, 단순히 한 두 대의 서버 접속이 필요하다면 간편히 쓸만한 기능입니다.

 

 또한 OpenSSH 서버를 추가로 설치하여 다른 윈도우 또는 리눅스, 유닉스 시스템에서도 원격으로 접속 및 관리가 가능해집니다. SCP를 활용한 데이터 전송뿐만 아니라 해커들의 쉬운 먹잇감이 되는 원격데스크톱 연결도 SSH의 터널링 컨셉을 이용하여 안전하게 사용할 수 있습니다.

OpenSSH Client & Server 설치 방법

 SSH 서버는 클라이언트와 마찬가지로 Windows 10 기능 중 일부지만 기본적으로 설치되지 않는 선택적 기능입니다. 현재 컴퓨터에서 다른 원격 서버로 접속하기 위해서는 기본으로 제공되는 OpenSSH 클라이언트 기능을 사용할 수 있지만, 반대로 원격으로 현재 컴퓨터를 Command Line 기반으로 관리하기 위해서는 추가 설치가 필요합니다.

 

 OpenSSH 서버 선택적 기능 설치는 두 가지 방법이 있습니다. Windows 앱 및 기능에서 설치하거나, Windows PohwerShell 에서 명령어로 설치할 수 있습니다.

 

1 OpenSSH Windows 선택적 기능 설치 방법

 Windows 시작 버튼을 누르고 ① "앱 및 기능" 검색 후 ② 앱 및 기능을 실행합니다. 참고로 Windows 설정 > 앱 > 앱 및 기능으로 이동하실 수 있습니다.

윈도우 앱 및 기능

 ① 앱 및 기능 탭에서 ② 선택적 기능을 클릭합니다.

선택적 기능

 선택적 기능 목록 상단에는 기능을 추가할 수 있는 기능 추가 버튼이 있으며, 이미 기본 설치된 OpenSSH 클라이언트도 목록에서 확인하실 수 있습니다.

OpenSSH 클라이언트

 이제 OpenSSH 서버 옵션을 설치하기 위해 ① 기능 추가 버튼을 누른 뒤 '선택적 기능 추가' 팝업창 목록에서 ② OpenSSH 서버 체크박스를 선택한 다음 설치(1) 버튼을 클릭합니다.

OpenSSH 서버 추가

 OpenSSH 서버 옵션 설치가 진행됩니다. SSH 서버는 Windows 10 PC에서 구동되는 것으로 다른 시스템에서 실행되는 서버에 연결하는 것이 아닌 실제 해당 PC에서 서버를 실행하려는 경우에만 설치해야합니다.

 

 예를 들어 다른 시스템으로 연결만 필요하다면 클라이언트는 기본 사용이 가능하므로 설치가 필요하지 않습니다.

 설치가 완료되면 선택적 기능 목록에 OpenSSH 서버OpenSSH 클라이언트가 나타납니다.

OpenSSH 서버 설치 완료

 

2 OpenSSH Server 시작 및 중지 방법

 Windows 컴퓨터에 OpenSSH 서버 옵션을 설치 후 서비스 구동을 위해 Windows PowerShell 실행 후 다음 명령을 입력합니다. 먼저 서비스 동작 유무 확인을 위해 ① Get-Service sshd 명령어를 입력합니다.

sshd 서비스 확인

 OpenSSH SSH Server(sshd) 서비스는 ② Stopped 상태로, 선택적 기능 추가 후 사용자가 수동으로 서비스를 시작하셔야 합니다. 서비스 시작 방법은 다음과 같습니다.

 

 ① Start-Service sshd 명령어 수행 후 다시 Get-Service sshd 명령어로 상태 확인 시 ② Running 으로 변경됩니다.

sshd 서비스 시작

① Stop-Service sshd 명령어 수행 후 Get-Service sshd 명령어로 상태 확인 시 ② Stopped 으로 변경됩니다.

sshd 서비스 중지

 OpenSSH Server Running 상태에서 SSH 명령을 실행하여 현재 컴퓨터의 클라이언트에서 서버로 연결이 가능합니다. 연결은 PowerShell 또는 명령 프롬프트에서 모두 작동하므로 원하는 방법을 이용하여 접속할 수 있습니다.

ssh 접속

 SSH 명령은 macOS 또는 Linux, Unix 와 같은 다른 운영체제에서 명령을 통해 SSH 서버에 연결하는 것과 동일하게 작동합니다. SSH 구문 및 명령 줄 옵션은 동일하게 사용됩니다.

 

 예를 들어 test.vsphere.com 에서 사용자 이름 HashTag 로 SSH 서버에 연결하려면 다음을 실행합니다.

 ssh HashTag@test.vsphere.com

 

 기본적으로 이 명령은 기본값인 22 포트에서 실행중인 SSH 서버에 연결을 시도합니다. 그러나 원격 시스템에서 설정(LISTEN)된 포트가 다른 경우 옵션을 사용하여 포트를 지정할 수 있습니다.

 

 예를 들어 서버가 2022 포트에서 연결을 수락하면 다음과 같이 실행할 수 있습니다.

ssh HashTag@test.vsphere.com -p 2022

 

 참고로 OpenSSH 서버를 설치하면 "OpenSSH-Server-In-TCP"라는 방화벽 규칙이 생성되고 활성화됩니다. 이 규칙은 포트 22번에서 인바운드 SSH 트랙픽을 허용하게 됩니다.

 

3 OpenSSH CLI 설치 방법

 Windows OpenSSH Server 및 Client 는 Windows 설정에서 선택적 기능 추가 방식이 아닌 PowerShell 에서 명령어를 이용하여 설치도 가능합니다.

 

 관리자 권한으로 PowerShell 실행 후 ① Get-Service sshd 명령을 실행합니다. 현재 해당 컴퓨터는 SSH Server 미설치 상태로 관련 서비스를 찾을 수 없으므로 오류가 나타납니다. 다음 명령어를 사용하여 OpenSSH 기능을 설치할 수 있는지 확인합니다.

OpenSSH 설치 확인 CMD

② Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

 OpenSSH.Client Installed, OpenSSH.Server ③ NotPresent 상태로 SSH 서버 기능만 설치를 진행합니다.

 

 다음 명령어를 입력하여 OpenSSH Server 설치를 진행합니다.

OpenSSH 서버 CMD 설치

① Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

 명령어 실행 후 OpenSSH Server 설치가 진행되며 PowerShell 화면에 ② 설치 진행 상황이 표시됩니다.

 

 설치가 완료되면 ① Online : True 로 표시되며, ② Get-Service sshd 명령어로 현재 상태를 보면 설치는 완료되었으나, 서비스는 중지된 상태로 나타납니다.

명령어 설치 완료

 선택적 기능 설치 방법과 동일하게 PowerShell 설치 완료 후 ① Start-Service sshd 명령어로 SSH 서버를 시작합니다. 만약 Windows 시작 시 항상 SSH 서버가 자동으로 실행되길 원한다면 다음 명령어를 수행합니다.

OpenSSH 자동 시작 등록

② Set-Service -Name sshd -StartupType 'Automatic'

 

 OpenSSH 서버를 설치하면 자동으로 "OpenSSH-Server-In-TCP" 방화벽 규칙이 생성되고 활성화되지만, ① Get-NetFirewallRule -Name *ssh* 수행 후 'Enabled : True''PrimaryStatus : OK' 등 활성화 상태를 확인할 수 있습니다. 또한 ② netstat -an | findstr 22 명령어로 22번 포트가 LISTENING 상태인 것을 확인할 수 있습니다.

방화벽 등록 확인

 만약 방화벽 설정이 없다면 아래 명령어로 활성화 할 수 있습니다.

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

 

 이제 SSH 연결로 서버 접속이 정상적으로 이루어지는지 확인합니다.

SSH 접속

 Windows 10 SSH 서버 활성화 후 로컬 계정이 아닌 Microsoft 계정을 사용중이라면 어떤 계정을 사용해야 할까요?

 

  'account@live.com', 'Administrator' 등 다양한 방법을 시도해봤지만 접속이 되지 않거나, 틀린 패스워드로 표시된다면 다음과 같은 방법으로 SSH 접속에 사용 가능한 계정 이름을 찾을 수 있습니다.

Microsoft 계정 사용자 SSH 접속 방법

 접속하려는 대상 서버(Windows 10)에서 관리자 계정이 로컬 계정이 아닌 Microsoft 계정을 이용하고 있다면 Windows PowerShell 또는 명령 프롬프트 실행 후 ① whoami 명령어를 입력합니다.

 

 명령어 입력 시 "HOSTNAME\USERNAME" 형태로 표시됩니다. 예를 들어 컴퓨터 이름이 "Forbes", 사용자 이름이 "HashTag"라면 결과 값으로 "Forbes\HashTag" 이 표시됩니다.

 

 ② ssh Forbes\HashTag@Address 로 접속을 시도해보시기 바랍니다.

Microsoft 계정 사용자

 Windows 10 OpenSSH 서버로 접속이 성공적으로 이루어졌습니다.

HOST@USERNAME

이제 원격에서도 원격 데스크톱(RDP)이 아닌 명령어 기반(Dos)으로 Windows 10 PC 관리를 수행할 수 있습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함