LoginSignup
40
45

More than 3 years have passed since last update.

Windows 10 に OpenSSH サーバをインストールする

Last updated at Posted at 2020-07-23

Windows 10 の 1803 以降のバージョンには標準で OpenSSH クライアントがインストールされていますが、アドオンとして OpenSSH サーバも用意されています。
この記事では、標準で用意されている OpenSSH サーバのセットアップ手順を解説します。

インストール手順

インストールは GUI(設定アプリ)でのやり方と、コマンド(PowerShell)でのやり方と 2 種類あります。

より具体的な手順は以下を参考にして下さい。

https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse
Windows 10 にオンデマンド機能の OpenSSH サーバをインストールする方法

以下、コマンドラインでのインストール方法について解説します。

PowerShell管理者モード で開きます。

以下のように実行します。

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

正常終了すると以下のように返却されます。

Path          :
Online        : True
RestartNeeded : False

環境によっては、以下のように失敗することがあります。

Add-WindowsCapability : Add-WindowsCapability failed. Error code = 0x800f0954
At line:1 char:1
+ Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Add-WindowsCapability], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.AddWindowsCapabilityCommand

これは WSUS 導入環境など、 Windows のコンポーネントをインターネット経由ではなく WSUS サーバから配信しているような環境で起こる現象です。

これはグループポリシーエディタで解決する事ができます。
OpenSSH Server Install failed, contact your administrator to get this feature

gpedit.msc

ローカルグループポリシーエディターが開いたら、「コンピューターの構成」→「管理用テンプレート」→「システム」と展開します。
オプションコンポーネントのインストールおよびコンポーネントの修復のための設定を指定する」をダブルクリックします。
ssh-lgp-01.png

ウインドウ左上の「有効」ラジオボタンをクリックし、左下の「Windows Server Update Service (WSUS) の代わりに、Windows Update から修復コンテンツとオプションの機能を直接ダウンロードする」にチェックを入れます。
ssh-lgp-02.png

「適用」をクリック、「OK」をクリックします。
ローカルグループポリシーエディターも閉じて OK です。

PowerShell(管理者モード)で以下のように実行します。

gpupdate /force

そのあと、もう一度インストールを試行します。

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

これで成功するはずです。

OpenSSH の設定

引き続き PowerShell(管理者モード)での作業です。

SSH サービスを起動します。

Start-Service sshd

サービスを自動起動したいなら以下のコマンドを実行します。

Set-Service -Name sshd -StartupType 'Automatic'

ファイアウォールの設定をします。

Get-NetFirewallRule -Name *ssh*

以下のように、Enabled : True と返って来れば OK。

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               : Any
Platform              : {}
Direction             : Inbound
Action                : Allow
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 :
PrimaryStatus         : OK
Status                : 規則は、ストアから正常に解析されました。 (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local

SSH 接続

PuTTY や Tera Term で localhost:22 への接続を試行します。
もちろん PowerShell で ssh localhost でも OK です。
端末を Microsoft アカウントで利用している場合でも、実ユーザー名(C:¥Users¥???? の ???? の部分)とそのパスワードでログインできます。

ネットワーク上の他の端末から SSH 接続がうまく行くかも確認しましょう。

Windows のデフォルトシェルはコマンドプロンプトなので注意。

参考

https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse
https://social.technet.microsoft.com/Forums/en-US/251804c1-883e-4ec8-a378-352dabbe87dd/openssh-server-install-failed-contact-your-administrator-to-get-this-feature?forum=ws2019

40
45
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
45