Presented by DMZ. (非武装エリア)
最終更新日: 2020年2月7日
(This site is not official.)

SSHサーバーを準備する

コマンドベースでWindows Serverを操作する場合、リモートデスクトップを使ってリモートPCからWindows Server(のコマンド画面)に接続する事が可能です。 ただし、利用できるPCはWindwosPCだけとなってしまい、Linuxを利用しているユーザは困ることでしょう。

Windoows ServerはPowershell Core6のバージョンからLinuxなどでおなじみのSSHサーバをWindows Serverにインストールできるようになりました。 これにより、使い慣れたSSHクライアントソフトを使って、Windows Serverの操作が行えるようになります。

(コマンドプロンプトからPowerShellを起動))

C:\ > powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\ >

(コマンドプロンプトからPowerShellを起動))

C:\ > powershell


SSHサーバ機能の組み込み

1) PowerShell を起動します。

C:\ > powershell

2) 利用可能なSSHのバージョンを確認します。

PS C:\> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : Installed

3) SSHサーバのインストール

PS C:\> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

4) ファイアーウォールの確認

SSHサーバの為の設定がFirewallに追加されているか確認します。(Enabledが”True”になっている事)

PS C:\> Get-NetFirewallRule -Name *ssh*

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

もしFirewallに登録が無い場合には次のコマンドでルールを追加してください。

PS C:\> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

5) サービスへの登録

OS起動時にサービスとしてSSHサーバが起動できるように登録します。

PS C:\> Set-Service -Name sshd -StartupType 'Automatic'

以上で、SSHサーバのインストールは完了です。 いつも利用しているSSHクライアントソフトを使い、Windows Serverにログインできる事を確認してください。

公開鍵を使った認証

SSHを使った接続では、デフォルトではIDとパスワードを使ったログインでWindows Serverにログインします。 セキュリティ強化のために、パスワードでの認証をやめて、電子証明書を使ったログインをするには次のようにせってを行います。

管理者用公開鍵は、C:\ProgramData\ssh\administrators_authorized_keys として作成する。 このファイルのアクセス権はSYSTEMとDomainAdministratorsだけにする。

ユーザのカギは ssh-keygenで作成する。ホームディレクトリに .ssh ディレクトリが作成される。id_rsa.pub を authorized_keys にマージする。このファイルのアクセス権はSYSTEMとDomainのユーザだけにする。

 

参考:
https://docs.microsoft.com/ja-jp/windows-server/administration/openssh/openssh_install_firstuse