Windows・Windows ServerでSSHを受け付ける
OpenSSH Serverの導入、サービス、受信ルール、管理者ユーザーの鍵登録を説明します。
接続先の管理者PowerShellでOpenSSH Serverの状態を確認します。導入済みならサービスと受信ルールへ進みます。管理者アカウントの公開鍵は、通常のユーザーフォルダーとは登録先が違います。
このページの内容
OpenSSH Serverの状態を確認して導入する
Windows Server 2025では標準で導入されるため、まず状態を確認します。その他の対応Windowsでも導入済みの場合があります。NotPresentの場合だけ追加してください。設定画面のオプション機能から導入することもできます。
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・必要なプロファイルと接続元に限定して作成します。
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サービスを起動する
自動起動を設定し、サービスを開始します。初回起動ではホスト鍵などが作られます。別端末から接続する前に、待受ポートも確認します。
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も含めた手順を載せています。
別の端末から接続して確認する
ローカルアカウント名とホスト名を置き換えます。ドメインアカウントなら-lの値をDOMAIN\userの形式へ変更します。初回のホスト鍵は管理コンソール側の公開鍵と照合してください。
ログイン後の既定シェルはcmd.exeの場合があります。whoamiとhostnameで接続先を確認します。PowerShellへ変更したい場合はMicrosoftのDefaultShell設定を参照してください。
ssh -p 22 -l localuser host.example設定変更とログの確認
既定のサーバー設定はC:/ProgramData/ssh/sshd_configです。変更前にバックアップし、構文確認後にサービスを再起動します。Windowsのサービス再起動では既存接続が切れる可能性があるため、RDPやコンソールなどの別経路を確保してください。
接続に失敗する場合はイベントビューアーの「アプリケーションとサービスログ → OpenSSH → Operational」を確認します。設定を戻す場合は変更したファイルを復元し、構文確認後に再起動します。
& "$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・ルーター・ゲームの組み合わせを実機検証したものではありません。