1:PowerShell over SSH接続の事前設定

監視対象(Windowsサーバ)に対して、事前設定を行います。必要な作業項目は以下のとおりです。

  • PowerShell 7のインストール
  • SSHサービスのインストールと設定
  • 監視ユーザ(一般ユーザ)の作成
PowerShell 7のインストール

対象機器にAdministrator権限のあるユーザーでログインし、PowerShell 7をインストールします。

1.PowerShellのVer7系の最新パッケージ「PowerShell-7.x.x-win-x(64|86).msi」をインターネットから取得します。

2.ダウンロードしたインストーラ(.msi)を実行し、PowerShell 7をインストールします。

インストールの際は、以下3つににチェックをつけます
☑ Add PowerShell Path To Environment Variable
☑ Register Windows Event Logging Manifest
☑ Enable PowerShell remoting
□ Add 'Open here' context menus to Exploe

SSHサービスのインストールと設定

Windows Server 2019/Windows 10 #1803 以降の場合は、標準でOpenSSHのインストーラが用意されています。
「設定」→「アプリ」→「アプリと機能」→「オプション機能」から「OpenSSHサーバ」をインストールします。
※ただし、インターネット接続環境が必要です。

上記以外の場合は、パッケージをダウンロードして下記手順を実施します。
※Win32 OpenSSH の最新パッケージ「OpenSSH-Win(64|32).zip」をダウンロードします。64bitか32bitはWindowsに合わせて選びます。

1.インストーラファイルを設置します。

対象機器にAdministrator権限のあるユーザーでログインし、ダウンロードしたファイル(.zip)をインストールフォルダ「C:\Program Files\OpenSSH」に展開します。

2.OpenSSHサービスをインストールします。

管理者権限でコマンドプロンプトを起動し、インストーラスクリプトを実行します。

[実行例]
C:\> cd C:\Program Files\OpenSSH
C:\> powershell -ExecutionPolicy Bypass -File install-sshd.ps1
[表示例]
[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
sshd and ssh-agent services successfully installed

インストール後、インストールフォルダ「C:\Program File\OpenSSH」に 「Authenticated Users」の「読み取りと実行」を許可します。

3.OpenSSHサービスを設定します。

設定ファイル「C:\ProgramData\ssh\sshd_config」を設定します。
利用する環境に合わせて設定します。ここでは接続に関連する設定を抜粋して記載します。
※設定ファイルが無い場合は一度SSHサービスを起動すると、自動でデフォルト設定が作成されます。

  • Port(任意)
    22番ポート以外で sshd を稼働させる場合は変更します。
  • 公開鍵認証(任意)
    公開鍵認証を有効にする場合は「PubkeyAuthentication yes」を設定します。
  • パスワード認証(任意)
    パスワード認証を有効にする場合は「PasswordAuthentication yes」、無効にする場合は「PasswordAuthentication no」を設定します。
  • PowerShell over SSH用の設定(必須)
    「Subsystem powershell C:\Progra~1\PowerShell\7\pwsh.exe -sshs -NoLogo -NoProfile」を追加します。
    ※pwsh.exe のパスは環境に合わせて適宜変更します。
  • Administrators ユーザ用の authorized_keys ファイルパス(任意)
    Administrators ユーザ用の authorized_keys を、各ユーザ毎に管理する場合は、以下をコメントアウトします。

    #Match Group administrators
    # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

4.OpenSSHサービスを起動します。

OpenSSH サービスのスタートアップの種類を「自動(遅延開始)」にし、サービスを「開始」(または再起動)します。

監視ユーザ(一般ユーザ)の作成

PowerShell over SSHでは一般ユーザの利用を想定しています。
Windows側に監視用の一般ユーザを事前に作成します。

1.監視ユーザを作成します。

2.Performance Monitor Usersに監視ユーザを追加します。

「管理ツール」>「コンピューターの管理」→「システム ツール」>「ローカル ユーザとグループ」>「グループ」を開き、Performance Monitor Usersに監視ユーザを追加します。

3.Event Log Readerに監視ユーザを追加します。

「管理ツール」>「コンピューターの管理」→「システム ツール」>「ローカル ユーザとグループ」>「グループ」を開き、Event Log Readerに監視ユーザを追加します。

4.Service Control Managerの権限を付与します。

管理者権限でコマンドプロンプトを起動し、以下コマンドを実行します。
改行せずに1行で入力します。

[実行例]
C:> sc sdset SCMANAGER D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
[表示例]
[SC] SetServiceObjectSecurity SUCCESS

【注意】

接続方式がPowerShell over SSHの場合は、監視ユーザにドメインユーザを利用できません。ローカルユーザを利用してください。