Windows 2025
Sponsored Link

OpenSSH : SSH サーバーの設定2024/11/27

 

Windows Server では OpenSSH が正式サポートされているため、設定は容易です。

CUI で作業する場合は以下のように設定します。

[1] PowerShell を管理者権限で起動して設定します。
PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# インストール可能な機能名称を確認 (OpenSSH は既定でインストール済み)
PS C:\Users\Administrator> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' 

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : Installed

# もし OpenSSH Server がインストールされていない場合はインストール
PS C:\Users\Administrator> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 

Path          :
Online        : True
RestartNeeded : False

# サービス起動
PS C:\Users\Administrator> Start-Service -Name "sshd" 

# スタートアップを [自動] に設定
PS C:\Users\Administrator> Set-Service -Name "sshd" -StartupType Automatic 

# 確認
PS C:\Users\Administrator> Get-Service -Name "sshd" | Select-Object * 

Name                : sshd
RequiredServices    : {}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : True
DisplayName         : OpenSSH SSH Server
DependentServices   : {}
MachineName         : .
ServiceName         : sshd
ServicesDependedOn  : {}
ServiceHandle       : SafeServiceHandle
Status              : Running
ServiceType         : Win32OwnProcess
StartType           : Automatic
Site                :
Container           :

# Windows Firewall は 既定で [22/TCP] ポートの許可が設定されているが
# プロファイルの適用先が Private のみ
PS C:\Users\Administrator> Get-NetFirewallRule -Name OpenSSH-Server-In-TCP 

Name                          : OpenSSH-Server-In-TCP
DisplayName                   : OpenSSH SSH Server (sshd)
Description                   : Inbound rule for OpenSSH SSH Server (sshd)
DisplayGroup                  : OpenSSH Server
Group                         : OpenSSH Server
Enabled                       : True
Profile                       : Private
Platform                      : {}
Direction                     : Inbound
Action                        : Allow
EdgeTraversalPolicy           : Block
LooseSourceMapping            : False
LocalOnlyMapping              : False
Owner                         :
PrimaryStatus                 : OK
Status                        : The rule was parsed successfully from the store. (65536)
EnforcementStatus             : NotApplicable
PolicyStoreSource             : PersistentStore
PolicyStoreSourceType         : Local
RemoteDynamicKeywordAddresses : {}
PolicyAppId                   :
PackageFamilyName             :

# プロファイルの適用先に Public を追加する場合は以下
PS C:\Users\Administrator> Set-NetFirewallRule -Name OpenSSH-Server-In-TCP -Profile "Private,Public" 

# 既定では ssh アクセスが許可されているのは
# [administrators] と [openssh users] のグループのみ
PS C:\Users\Administrator> Get-Content C:\ProgramData\ssh\sshd_config | Select-String "AllowGroups" 

AllowGroups administrators "openssh users"

# ssh アクセスを全ユーザーに許可する場合は 該当行をコメント化
PS C:\Users\Administrator> (Get-Content C:\ProgramData\ssh\sshd_config).Replace("AllowGroups","#AllowGroups") | Set-Content C:\ProgramData\ssh\sshd_config 
PS C:\Users\Administrator> Restart-Service -Name "sshd" 
OpenSSH : SSH サーバーの設定 (GUI)
 

GUI で作業する場合は以下のように設定します。

[2] [サーバーマネージャー] - [サービス] を開きます。
[3] [OpenSSH Server] のサービスを開始して、スタートアップを [自動] に変更しておきます。
[4] Windows Firewall は、既定で、受信の規則 [22/TCP] ポートの許可が設定されてます。
ただし、既定では [Private] プロファイルのみに適用されているため、SSH サーバーに接続できない場合はプロファイルの適用範囲を見直します。
[5] Windows Server の OpenSSH Server は既定で [administrators] と [openssh users] グループ所属ユーザーのみ ssh アクセスが許可されています。
よって、ssh アクセスを許可したいユーザーを [openssh users] グループに所属させるか、または全ユーザーに許可する場合は、該当行をコメントにする必要があります。
関連コンテンツ