CH-J Server ManagerSSH によるサーバー管理
メニュー
すべてのガイドと記事 →

Windows Server 2022・2025でOpenSSHを設定する

Windows機能を確認し、SSHを開始し、ネットワークを制限してホスト鍵を確認します。

サービスを確認して有効化

対象サーバーで管理者としてPowerShellを実行します。Windows Server 2025はOpenSSHを含むため、無条件で再インストールせず状態を確認します。条件付きの例は未導入の場合だけインストールし、sshdと自動起動を有効にします。ダウンロード失敗時は更新ポリシーの確認が必要な場合があります。

$cap = Get-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0'
if ($cap.State -ne 'Installed') {
    Add-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0'
}
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Get-Service sshd

管理ネットワークにファイアウォールを制限

実行前に説明用サブネット192.0.2.0/24を実際の管理ネットワークへ置き換えます。既存のOpenSSH規則を確認・制限するか、なければ制限付き規則を作ります。コンソールを保ってください。別の端末からTCP 22を確認します。開いているポートだけではサーバーの身元を確認できません。

$AdminSubnet = '192.0.2.0/24'
$rule = Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue
if ($rule) {
    $rule | Set-NetFirewallRule -Enabled True -RemoteAddress $AdminSubnet
} else {
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -RemoteAddress $AdminSubnet
}
Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' | Get-NetFirewallAddressFilter
Test-NetConnection -ComputerName windows-server.example -Port 22

身元とアカウントを確認

コンソールの指紋をクライアントの確認画面と照合し、Windowsアカウント名で接続します。管理者は特別なACLを持つ%ProgramData%/ssh/administrators_authorized_keys、一般アカウントは通常プロファイルの.ssh/authorized_keysを使います。Microsoftの鍵管理手順に従ってください。CH-JのWindows対応は一部のツールで、Linux Disk ManagerやNGINXの手順がWindows機能になるわけではありません。

ssh-keygen -lf "$env:ProgramData\ssh\ssh_host_ed25519_key.pub" -E sha256
ssh username@windows-server.example

詳しいドキュメント

Microsoft: OpenSSH Server →

Microsoft: OpenSSH keys →

生体認証によるロック解除とセキュリティ →