Help us understand the problem. What is going on with this article?

インターネットに接続されていない環境下でWindows ServerにOpenSSHを入れる

More than 1 year has passed since last update.

インターネットに接続されていない環境下でWindows ServerにOpenSSHを入れる

  • 前提:RDPでアクセス可能である
  • 公開鍵認証でログインできるようにする

前準備

ココを参考にする
https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH

あらかじめダウンロードしておき、Windowsに移す。
https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.0.0.0p1-Beta/OpenSSH-Win64.zip
RDPでは、ローカルでファイルをコピーして、リモートでペーストするだけで良い。簡単。

インストール

解凍して C:\ 直下に置く。

PowerShellを 管理者モード で立ち上げる。
解凍したディレクトリに移動し、以下を実行。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> cd C:\OpenSSH-Win64\

PS C:\OpenSSH-Win64> powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
[SC] SetServiceObjectSecurity SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
[SC] ChangeServiceConfig2 SUCCESS
sshd and ssh-agent services successfully installed

PS C:\OpenSSH-Win64> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Name                  : sshd
DisplayName           : OpenSSH Server (sshd)
Description           :
DisplayGroup          :
Group                 :
Enabled               : True
Profile               : Any
Platform              : {}
Direction             : Inbound
Action                : Allow
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 :
PrimaryStatus         : OK
Status                : The rule was parsed successfully from the store. (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local

PS C:\OpenSSH-Win64> net start sshd
The OpenSSH SSH Server service is starting..
The OpenSSH SSH Server service was started successfully.

これで設定ファイルなどが生成される

設定の変更

sshd_config の編集

PS C:\OpenSSH-Win64> notepad C:\ProgramData\ssh\sshd_config

ファイルの一番下にある以下の2行を削除する。
(このファイルが存在しない場合、公開鍵認証が途中でストップして失敗するため。)

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

sshdを再起動して設定を反映。

PS C:\OpenSSH-Win64>net stop sshd
The OpenSSH SSH Server service was stopped successfully.

PS C:\OpenSSH-Win64> net start sshd
The OpenSSH SSH Server service is starting.
The OpenSSH SSH Server service was started successfully.

公開鍵認証

公開鍵をなんとかして ~/.ssh/authorized_keys に書き込む。
普通にRDP越しのコピペが楽で良い。

このとき、ファイルのアクセス権に注意。
「プロパティ>セキュリティ」を確認し、EVERYONEに対してアクセス権があると、鍵を読み込んでくれないため、要確認。

これで公開鍵認証によるSSHログインが可能になるはず。
うまくいかない場合は sshd_config に以下の設定を追加すると C:\ProgramData\ssh\logs\sshd.log にログが作成されるようになるので、がんばってトラブルシュートしてください。

SyslogFacility LOCAL0
LogLevel DEBUG3

その他ハマりポイント

  • デフォルト設定だとEd25519鍵が拒否される
sekai
Site Reliability Engineering をしています
https://narusejun.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away