どうも、Tです。
Windows環境でSFTPサーバーが欲しいなぁと思ってたところ、Windows Server 2019からOpenSSHサーバーとクライアントが正式サポートしているようだったのでインストールしてみました。
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/1c49075ff323fa2b35fd880d1eae7b23.jpg)
目次
やりたいこと
WindowsにOpenSSHをインストールして、SFTPとして使いたい。
環境
- Windows Server 2019
ADドメインに参加しているWindows Serverにインストールします。作業は、ADドメインのAdministratorで行っています。
今回検証のため2台にOpenSSHをインストールしましたが、1台で下記と同じ現象が発生しました。同じパッチレベルでも発生有無が異なったので、別問題とは思いますが調べてません・・・・。作業中にメッセージが出てきた場合は、「ローカルAdministrator」もしくは「ADドメインのAdministrator以外のドメイン管理者のアカウント」で作業することで回避できます。
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/61a5f8ea2c9fede5b2240d7189d3262f.png)
指定したデバイス、パス、またはファイルにアクセスできません。これらの項目にアクセスするための適切なアクセス許可がない可能性があります。
OpenSSHインストール
Microsoftさん公式手順があるので、こちらを参考に進めていきます。PowerShellとGUIの2つのインストール方法がありますが、今回はGUIでインストールします。
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/62becbf9e66edbd7a674a2191e28faef.png)
スタートボタンから「設定」をクリックします。
「アプリ」をクリックします。
「アプリと機能」->「オプション機能の管理」をクリックします。
「機能の追加」をクリックします。
「OpenSSHサーバー」を選択して「インストール」をクリックします。
インストールが開始します。
OpenSSHサーバーがインストールされました。OpenSSHクライアントは元からインストールされていました。
ここは公式の手順にも記載がないですが、OpenSSH SSH Serverサービスが手動で停止状態になっています。
自動起動に変更してサービスを起動します。
少し見えにくいですが、OpenSSH SSH Serverの上にOpenSSH Authentication Agentというものがあります。SSH-AGENTと言われているものですが、鍵管理に使われるサービスです。今回はパスフレーズで使うためデフォルト(停止状態)にしています。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU2JUI3JUI3JUU2JUIyJThDJUUzJTgyJTkyJUU2JUE1JUI1JUUzJTgyJTgxJUUzJTgyJThCV2luZG93cyVFMyU4MSVBRXNzaC1hZ2VudCVFNCVCQSU4QiVFNiU4MyU4NSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YWZjYWNkMGMxNzk4YTA5MTI4ZGIxYjcxN2ZhOTA3YmM&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzbG90cG9ydCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjMyN2JlYzY1ODVjMGNmZWQ1NmE4NjUwYTI0ODFjY2M&blend-x=142&blend-y=486&blend-mode=normal&s=940b91fb175146f9106b98dafe26efa2)
ファイアウォールは、自動的に設定してくれるので何もせず大丈夫です。
SSH接続確認
ドメインAdministratorでログイン
TeratermからSSHで接続してみます。ユーザーは、<ユーザー名>@<ドメイン名>で指定します。
ログインできました。
cmd.exeで使えるコマンドが使えるようです。ここからPowerShellなども使えます。
ローカルアカウントでログイン
ローカルアカウントを使用するの場合は、<コンピュータ名>\<アカウント名>でログインできます。
ドメインアカウント(管理者権限)でログイン
Domain Adminsグループに参加しており、デスクトップにログインしていないユーザーでもログインできます。
ドメインアカウント(一般権限)でログイン
Domain Usersグループに所属しているデフォルト状態のユーザーもログインできます。
SFTP接続確認
SFTPに接続してみます。アカウントの登録はSSHと同じ<アカウント>@<ドメイン名>です。
SFTP接続できました。
/(ルート)を見るとC:としてみます。Linuxなどから指定する際は、/C:/xxxxなどなかなか見ないパス指定になります。
Domain Usersのアカウントでも接続することは可能でした。SSH接続できているので当たり前と言えば当たり前か・・・・。
これでSSHもSFTPも使えるようになりました。
その他
使えるようにはなったものの、誰でも彼でも接続できるというのはなんだかなぁ・・・・と思って調べてたらちゃんと設定ファイルありました。
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/62becbf9e66edbd7a674a2191e28faef.png)
「C:\ProgramData\ssh」にあります。
Linux同様とはいかないまでも、アカウント制限くらいはできそうです。
参考
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/62becbf9e66edbd7a674a2191e28faef.png)
![](https://t-dilemma.info/wp-content/uploads/simplicity-cache/e16c3958af82fe7faccc1b4b732a8842.png)
まとめ
割と簡単でよかった・・・。Windowsもどんどん便利になってきてますね。