SFTPが必要になったのでWindows Server 2019でOpenSSHサーバーを使ってみる

どうも、Tです。

Windows環境でSFTPサーバーが欲しいなぁと思ってたところ、Windows Server 2019からOpenSSHサーバーとクライアントが正式サポートしているようだったのでインストールしてみました。

「Windows Server 2019」は「OpenSSH」をサポート/「設定」アプリの[オプション機能の管理]から「OpenSSH」を追加・削除できる
 米Microsoftは12月11日(現地時間)、「OpenSSH」クライアントおよびサーバーが「Windows Server 2019」と「Windows 10 バージョン 1809(October 2018 Update)」で“Feature-on-Demand”として利用できるようになったことを発表した。「設定」...

やりたいこと

WindowsにOpenSSHをインストールして、SFTPとして使いたい。

環境

  • Windows Server 2019

ADドメインに参加しているWindows Serverにインストールします。作業は、ADドメインのAdministratorで行っています。

今回検証のため2台にOpenSSHをインストールしましたが、1台で下記と同じ現象が発生しました。同じパッチレベルでも発生有無が異なったので、別問題とは思いますが調べてません・・・・。作業中にメッセージが出てきた場合は、「ローカルAdministrator」もしくは「ADドメインのAdministrator以外のドメイン管理者のアカウント」で作業することで回避できます。

見ないフリしてきたWindows Serverの“変なメッセージ”に向き合ってみた
Windows Serverを操作していると、“変なメッセージ”に出会うことがこれまでに何度かありました。何となく理由が思い当たるし、目的を達成するための別の方法があるので気にせず、見ないことにしていました。しかし、思い当たる理由が全くの的外れと分かったので、その回避策を含めレポートします。

指定したデバイス、パス、またはファイルにアクセスできません。これらの項目にアクセスするための適切なアクセス許可がない可能性があります。

OpenSSHインストール

Microsoftさん公式手順があるので、こちらを参考に進めていきます。PowerShellとGUIの2つのインストール方法がありますが、今回はGUIでインストールします。

Windows 用 OpenSSH の概要
Windows 用 OpenSSH Client および Server を使用してリモート コンピューターをインストールしてリモート コンピューターに接続する方法について説明します。

スタートボタンから「設定」をクリックします。

「アプリ」をクリックします。

「アプリと機能」->「オプション機能の管理」をクリックします。

「機能の追加」をクリックします。

「OpenSSHサーバー」を選択して「インストール」をクリックします。

インストールが開始します。

OpenSSHサーバーがインストールされました。OpenSSHクライアントは元からインストールされていました。

ここは公式の手順にも記載がないですが、OpenSSH SSH Serverサービスが手動で停止状態になっています。

自動起動に変更してサービスを起動します。

少し見えにくいですが、OpenSSH SSH Serverの上にOpenSSH Authentication Agentというものがあります。SSH-AGENTと言われているものですが、鍵管理に使われるサービスです。今回はパスフレーズで使うためデフォルト(停止状態)にしています。

混沌を極めるWindowsのssh-agent事情 - Qiita
どうしてこうなった。何の話?WindowsでのSSH-AGENTとSSHの話です。この記事での用語: SSHとssh, SSH-AGENTとssh-agentこの記事では、SSH-AGENT…

ファイアウォールは、自動的に設定してくれるので何もせず大丈夫です。

SSH接続確認

ドメインAdministratorでログイン

TeratermからSSHで接続してみます。ユーザーは、<ユーザー名>@<ドメイン名>で指定します。

ログインできました。

cmd.exeで使えるコマンドが使えるようです。ここからPowerShellなども使えます。

ローカルアカウントでログイン

ローカルアカウントを使用するの場合は、<コンピュータ名>\<アカウント名>でログインできます。

ドメインアカウント(管理者権限)でログイン

Domain Adminsグループに参加しており、デスクトップにログインしていないユーザーでもログインできます。

ドメインアカウント(一般権限)でログイン

Domain Usersグループに所属しているデフォルト状態のユーザーもログインできます。

SFTP接続確認

SFTPに接続してみます。アカウントの登録はSSHと同じ<アカウント>@<ドメイン名>です。

SFTP接続できました。

/(ルート)を見るとC:としてみます。Linuxなどから指定する際は、/C:/xxxxなどなかなか見ないパス指定になります。

Domain Usersのアカウントでも接続することは可能でした。SSH接続できているので当たり前と言えば当たり前か・・・・。

これでSSHもSFTPも使えるようになりました。

その他

使えるようにはなったものの、誰でも彼でも接続できるというのはなんだかなぁ・・・・と思って調べてたらちゃんと設定ファイルありました。

OpenSSH Server configuration for Windows
Learn about the Windows-specific configuration options for OpenSSH Server on Windows Server and Windows.

「C:\ProgramData\ssh」にあります。

Linux同様とはいかないまでも、アカウント制限くらいはできそうです。

参考

OpenSSH Server configuration for Windows
Learn about the Windows-specific configuration options for OpenSSH Server on Windows Server and Windows.
Windows Server 2019で標準サポートされた「OpenSSH」がすごく便利そうだった話
自宅PCにESXiを入れて検証を行うインフラエンジニアの技術メモ。Windows Server/Linux/VMware/Ansible/Zabbixなど。
Windows Server 2019 : OpenSSH : SSHサーバーの設定 : Server World
Windows Server 2019 OpenSSH SSHサーバーの設定

まとめ

割と簡単でよかった・・・。Windowsもどんどん便利になってきてますね。