고급 Windows

OpenSSH Server

개요

 Windows NT 10 1809 버전 이후의 Windows 및 Windows Server는 OpenSSH Client 및 Server를 정식 지원한다. OpenSSH Client는 기본 설치되어 있으며, OpenSSH Server가 필요한 경우 선택적으로 설치할 수 있다.

GUI 기반 OpenSSH Server 설치

설정 > 앱 >  앱 및 기능 > 선택적 기능 > 기능 추가에서

  • OpenSSH 서버

해당 요소를 선택하여 설치한다.

 자동으로 OpenSSH-Server-In-TCP 방화벽 규칙이 생성된다.

 다만, 서비스는 자동으로 시작되지 않으니, services.msc에서 OpenSSH SSH Server의 시작 유형을 자동으로 변경하고 서비스를 시작하거나 Powershell에서 아래 명령을 수행한다.

# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

CLI 기반 OpenSSH Server 설치

# Check for capability
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
 Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
 New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
 Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

CLI 기반 OpenSSH Server 제거

# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

공개 키 배포

 OpenSSH Server가 설치된 호스트로 접속하려는 경우 클라이언트 호스트의 RSA 공개키를 서버 호스트의 ~/.ssh/authorized_keys 텍스트 파일에 저장한다.

 다만 관리자 계정인 경우(Administrators 그룹에 소속된 사용자 계정)에는 홈 디렉터리가 아닌 C:/ProgramData/ssh 경로의 administrators_authorized_keys 텍스트 파일에 키를 저장해야 한다. 또한 이 파일의 권한은 AdministratorsSYSTEM에만 액세스를 허용해야 한다. 만약 권한 상속이 되어 있어 권한을 수정할 수 없다면 상속을 해제하고 나머지 사용자 및 그룹을 제거하면 된다.

업데이트

 OpenSSH의 버전이 업데이트되면 Windows용 OpenSSH도 정기적으로 업데이트를 제공한다. 다만 아직까지 Windows Updates나 별도의 정식 업데이터를 제공하지는 않고 GitHub 레포지토리에서 Windows용 OpenSSH에 대한 유지보수를 하고 있다. Releases에서 *msi 설치 파일을 다운로드받아 최신 버전으로 업데이트할 수 있다.

참조 기술문서

댓글

댓글 본문
버전 관리
Hyunseok Lim
현재 버전
선택 버전
graphittie 자세히 보기