Windows 10にオンデマンド機能のOpenSSHサーバをインストールする方法企業ユーザーに贈るWindows 10への乗り換え案内(45)

Windows 10 バージョン1803からは、OpenSSHクライアントおよびサーバ機能がWindowsに組み込まれました。Windows Server,version 1803ではOpenSSHクライアントが、Windows Server,version 1809およびWindows Server 2019からはOpenSSHサーバが同様に組み込まれています。今回は、このOpenSSHサーバ機能に注目します。

» 2019年03月28日 05時00分 公開
[山市良テクニカルライター]
「企業ユーザーに贈るWindows 10への乗り換え案内」のインデックス

企業ユーザーに贈るWindows 10への乗り換え案内

アプリ開発者やITプロが喜ぶ、OpenSSHの標準搭載

 本連載第37回では、WindowsとLinuxの混在環境におけるWindows 10のLinux関連機能を紹介しました。

 その中で、Windows 10 バージョン1803から「OpenSSHクライアント」(C:\Windows\System32\OpenSSH\ssh.exe、ssh-keygen、scp.exeなど)と「OpenSSHサーバ」(C:\Windows\System32\OpenSSH\sshd.exe)についても触れました。OpenSSHクライアントは標準でインストールされ、OpenSSHサーバは「オンデマンド機能」として、オプションでインストールできます。

 Windows Serverの半期チャネル(Semi-Annual Channel:SAC)であるWindows Server,version 1803からは、Windows 10バージョン1803と同様にOpenSSHクライアントが組み込まれ、標準でインストールされるようになりました。

 本連載第37回では、OpenSSHサーバも含まれるように書いてしまいましたが、実際にはWindows Server,version 1809および長期サービスチャネル(Long-Term Servicing Channel:LTSC)のWindows Server 2019からオプションでOpenSSHサーバが利用可能になりました。

 ちなみに、OpenSSHのバージョンは、Windows 10 バージョン1803が「OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4」、Windows 10 バージョン1809が「OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5」です。

 アプリケーション開発者やITプロフェッショナルの方なら、Windows 10にOpenSSHクライアントが標準搭載され、他のWindowsのコマンドと同じように、すぐに、どこからでも(標準でPATHが通っているという意味で)、利用できることは特に歓迎していることでしょう。

 例えば、オンプレミスやクラウド上のLinuxサーバにsshで接続したり、scpやsftpでファイル転送したり、あるいはセキュアな接続のための公開鍵と秘密鍵のペアを作成したりするのに、外部のツールを入手してセットアップする必要はもうありません。

 Windowsでは「PowerShell Remoting」や「WinRM/WinRS」といったセキュアなリモート端末環境が標準で利用できますが、OpenSSHサーバ機能はもう一つのセキュアなリモート端末環境になります。これは、特にオンプレミスやクラウド上のWindows Serverをリモート管理する上で便利です。

 例えば、Linux標準のsshコマンドを利用して(Linuxで利用できる「PowerShell Core 6」もありますが)、Windows Serverにリモート接続し、コマンドラインで管理操作を実行できます。また、リモートデスクトップ接続やPowerShell Remotingなど、Windows標準のリモート接続手段が何らかの理由で突然利用不能になってしまった場合に、OpenSSHサーバを有効化しておけば安全に接続できる可能性があります。

デスクトップ環境でのオンデマンド機能のインストール

 OpenSSHサーバは、Windows 10 バージョン1803以降、Windows Server 2019、Windows Server,version 1809の「オンデマンド機能(Feature on Demand)」としてインストールできます。

 Windows 10とWindows Server 2019(デスクトップエクスペリエンス)の場合は、「設定」アプリを開き、「アプリ」→「アプリと機能」→「オプション機能の管理」を開いて、「+機能の追加」をクリックし、「OpenSSHサーバー」を展開して「インストール」をクリックします(画面1)。オンデマンド機能のインストールソースはインターネットからダウンロードされるため、インストールにはインターネットに接続している必要があります。

画面1 画面1 「オプション機能の管理」の「+機能の追加」をクリックし、「OpenSSHサーバー」をインストールする

 OpenSSHサーバのインストールが完了すると、「オプション機能の管理」の一覧に追加されます。また、サービス名「sshd」、表示名「OpenSSH SSH Server」でWindowsのサービスとして登録されます。ただし、サービスのスタートアップは「手動」になっているので、常時利用可能にしておきたい場合はsshdの構成をカスタマイズ後に「自動」に切り替えておきましょう。

 インストール直後に動作を確認するには、PowerShellウィンドウを開いて次の2つのコマンドラインを実行し、接続できることを確認します(画面2)。

Start-Service sshd
ssh ユーザー名@コンピュータ名(またはIPアドレス)
画面2 画面2 sshdサービスを開始して「ssh ユーザー名@コンピュータ名(またはIPアドレス)」を実行し、ローカルから接続できることを確認する

 sshdの既定の構成はパスワードのみの接続が安全ではありませんが、この時点ではリモートからの接続は「Windows Defenderファイアウォール」でブロックされるはずです(明示的にTCPポート22を許可していない限り)。

sshd_configの場所とLinuxのsshdとの違い

 sshdの構成ファイルは、「C:\ProgramData\ssh\sshd_config」にあります。この構成ファイルを適宜編集して、認証方法やポート番号などをカスタマイズします。カスタマイズが完了したら、sshdサービスを再起動して動作を確認します。

 意図した通りに動作するようであれば、サービスのスタートアップを「自動」に切り替え、Windows Defenderファイアウォールの「例外の規則」にTCPポート22(または他のポート番号)への接続許可を作成します。PowerShellでこれらの操作を行うには、次のようにコマンドラインを実行します(画面3画面4)。

Restart-Service sshd
Set-Service -Name sshd -StartupType Auto
New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName "sshd"
画面3 画面3 「C:\ProgramData\ssh\sshd_config」を編集してsshdサービスを再起動し、サービスのスタートアップやWindows Defenderファイアウォールを構成する
画面4 画面4 公開鍵(publickey)認証によるssh接続。Windows 10 バージョン1803以降では、標準で利用できる「ssh-keygen」(OpenSSHクライアントに含まれる)を使用して秘密鍵と公開鍵のペアの生成が可能

 なお、sshd_configを編集する際には、Windowsで利用できないディレクティブや設定が存在することに注意してください。例えば、認証方法(AuthenticationMethods)としてはパスワード(password)と公開鍵(publickey)が使用できます。

 また、「PermitRootLogin」ディレクティブはWindowsには適用されません。代替方法として「DenyGroups」ディレクティブでAdministratorsグループを拒否するように構成できます。その他、サポートされないディレクトリが幾つか存在します。詳しくは、以下のドキュメントで説明されています。

Server Coreインストールでのオンデマンド機能の有効化

 Windows Server 2019のServer Coreインストール環境や、Server Coreでのみ提供されるWindows Server,version 1809の場合、「設定」アプリを使用したオンデマンド機能のインストールができません。

 Server Core環境では、PowerShellで次のコマンドラインを実行することで、OpenSSHサーバ機能をインストールできます。

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

 1行目で、OpenSSHクライアントとOpenSSHサーバ機能の名前(Name)およびインストール状態(State)を確認し、2行目のコマンドラインでOpenSSHサーバをインストールします(画面5)。なお、Windows Server,version 1803以前はオンデマンド機能としてのOpenSSHサーバは提供されません。

画面5 画面5 Server Coreインストールでは「Add-WindowsCapability」コマンドレットを使用してOpenSSHサーバをインストールできる

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2018/7/1)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。