Windows・Windows ServerでSSHを受け付ける

OpenSSH Serverの導入、サービス、受信ルール、管理者ユーザーの鍵登録を説明します。

対象Windows標準のOpenSSH Server。Windows 11、Windows Server 2019 / 2022 / 2025など。Win32-OpenSSHを独自配置した環境はパスを読み替えます。
最初に確認すること

接続先の管理者PowerShellでOpenSSH Serverの状態を確認します。導入済みならサービスと受信ルールへ進みます。管理者アカウントの公開鍵は、通常のユーザーフォルダーとは登録先が違います。

このページの内容
  1. OpenSSH Serverの状態を確認して導入する
  2. 起動前に受信ルールを確認する
  3. サービスを起動する
  4. ログインするアカウントと鍵を設定する
  5. 別の端末から接続して確認する
  6. 設定変更とログの確認
  7. SSHサーバーを停止する場合

OpenSSH Serverの状態を確認して導入する

Windows Server 2025では標準で導入されるため、まず状態を確認します。その他の対応Windowsでも導入済みの場合があります。NotPresentの場合だけ追加してください。設定画面のオプション機能から導入することもできます。

接続先・PowerShell(管理者)
Get-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# StateがNotPresentの場合だけ実行
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

起動前に受信ルールを確認する

セットアップがOpenSSH-Server-In-TCPというTCP 22の許可ルールを作成する場合があります。プロファイルと接続元の範囲を確認し、管理用のLAN・VPN・固定IPに合わせます。

wf.mscで「セキュリティが強化されたWindows Defenderファイアウォール」を開き、受信の規則からSSHの規則を確認します。「スコープ」のリモートIPを必要な範囲へ設定してください。規則がなければTCP 22・必要なプロファイルと接続元に限定して作成します。

接続先・PowerShell(管理者)
Get-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue | Format-List Name,Enabled,Profile,Action
Get-NetFirewallRule -Name OpenSSH-Server-In-TCP -ErrorAction SilentlyContinue | Get-NetFirewallAddressFilter

サービスを起動する

自動起動を設定し、サービスを開始します。初回起動ではホスト鍵などが作られます。別端末から接続する前に、待受ポートも確認します。

接続先・PowerShell(管理者)
Set-Service -Name sshd -StartupType Automatic
Start-Service sshd
Get-Service sshd
Get-NetTCPConnection -LocalPort 22 -State Listen

ログインするアカウントと鍵を設定する

ローカルユーザーまたは対応するActive Directoryアカウントを使います。Microsoft Entra IDアカウントの公開鍵認証は対象外です。表示名やWindows HelloのPINを、そのままSSHのログイン名・パスワードとして使うことはできません。

通常ユーザーはユーザープロファイル配下の.ssh/authorized_keys、Administrators所属ユーザーは既定設定でC:/ProgramData/ssh/administrators_authorized_keysを使います。共通ガイドにACLも含めた手順を載せています。

Windowsの登録先とACLを確認する

別の端末から接続して確認する

ローカルアカウント名とホスト名を置き換えます。ドメインアカウントなら-lの値をDOMAIN\userの形式へ変更します。初回のホスト鍵は管理コンソール側の公開鍵と照合してください。

ログイン後の既定シェルはcmd.exeの場合があります。whoamiとhostnameで接続先を確認します。PowerShellへ変更したい場合はMicrosoftのDefaultShell設定を参照してください。

接続元・OpenSSH
ssh -p 22 -l localuser host.example

設定変更とログの確認

既定のサーバー設定はC:/ProgramData/ssh/sshd_configです。変更前にバックアップし、構文確認後にサービスを再起動します。Windowsのサービス再起動では既存接続が切れる可能性があるため、RDPやコンソールなどの別経路を確保してください。

接続に失敗する場合はイベントビューアーの「アプリケーションとサービスログ → OpenSSH → Operational」を確認します。設定を戻す場合は変更したファイルを復元し、構文確認後に再起動します。

接続先・PowerShell(管理者、標準導入パス)
& "$env:WINDIR\System32\OpenSSH\sshd.exe" -t
if ($? -and $LASTEXITCODE -eq 0) { Restart-Service sshd } else { throw "SSH設定の構文確認に失敗しました" }

SSHサーバーを停止する場合

ローカル端末など別経路から、Stop-Service sshdで停止し、Set-Service -Name sshd -StartupType Disabledで自動起動を止めます。今回追加した受信ルールだけを無効化します。既存のRDPなど、ほかの管理用ルールは変更しません。

参照した公式資料

資料確認日:2026年9月12日。公式資料と一般的な確認手順をもとに作成しています。すべてのOS・ルーター・ゲームの組み合わせを実機検証したものではありません。