Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら RSSフィードのご登録はこちらから
公開日:2018年5月12日
最終更新日:2020年8月12日

OpenSSHサーバーがWindows10に正式にやってきた(April 2018 Update/1803)

はじめに

2018年4月に、Windows 10 の大型アップデートである Windows 10 April 2018 Update (1803) で、Windows 10 に OpenSSH サーバーが正式に組み込まれ使用できるようになりました。

今までは開発者モードでないと動作しなかったのですが、今回は正式リリースということですね。ですが、全然話題になっていないのでこの記事で Windows 10 の OpenSSH サーバーをご紹介したいと思います。

これは待望の機能ですしね。

実は、以前(2015年頃)から OpenSSH サーバーを Windows で立ち上げる方法はあったのですが、そちらについては以下の記事を参照してください。

OpenSSH サーバーのインストール

OpenSSH サーバーのインストールは、まず、スタートメニューの[アプリと機能]にある[オプション機能の管理]をクリックします。

pic01

 

次に[機能の追加]をクリックします。この画面で、OpenSSHクライアントがすでにインストールされていることが分かりますね。

 

pic02

 

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

pic03

これで OpenSSH サーバーのインストールは完了です。

 

OpenSSH サーバー用ポートを開放しサービスを起動する

PowerShell を起動して、ssh localhost と実行すると、22番ポートが閉じていて接続が拒否されてしまいます。

ssh: connect to host localhost port 22: Connection refused

ですので、今度は PowerShell を管理者モードで起動して以下のコマンドを実行します。
> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

また、以下のコマンドで OpenSSH サーバーのサービスを起動します。
>  Start-Service sshd

 

SSH で localhost にログインしてみる

以下のコマンドで localhost に ssh でログインしてみます。

> ssh username@localhost

以下のようにフィンガープリントの受け入れを聞いてくるので yes と回答します。なお、フィンガープリントは加工してあります。
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:bCaTAATwYCOQCo9/zWXvI7nkb3abCilAkcLE+Z9xmrw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

するとパスワードを聞いてくるのでパスワードを入力すると、SSH の画面が表示されます。カレントはユーザーディレクトリです。
username@localhost's password:
Microsoft Windows [Version 10.0.17134.48]
(c) 2018 Microsoft Corporation. All rights reserved.

username@DESKTOP-KHJGQFE C:\Users\username>

ログイン後は DOS コマンドを実行可能になります。

公開鍵認証の設定

sshd_conf の設定

OpenSSH サーバーの設定は、C:\Windows\System32\OpenSSH 内の sshd_conf に記述します。デフォルト設定は同フォルダにある sshd_config_default を参考に設定します。なお、このフォルダのファイルは管理者権限でないと書き込みできないため、メモ帳などのテキストエディタを管理者権限で起動して編集する必要があります。

sshd_config_default から sshd_config をコピーして作成します。そして公開鍵設定を以下のように行います。

#コメントを外す
#PubkeyAuthentication yes
PubkeyAuthentication yes

修正が済んだら、OpenSSH を再起動します。再起動の方法は、PowerShell を管理者権限で起動して以下のコマンドを実行します。
> Restart-Service sshd

キーペアの作成

PowerShell で以下のコマンドを実行して、公開鍵・秘密鍵のキーペアを作成します。

> cd c:\users\$env:username
> ssh-keygen -t rsa -f id_rsa

パスワードの入力を求められますが、今回は Enter を押してスキップします。

公開鍵を既定の場所に配置します。

> copy id_rsa.pub .ssh\authorized_keys

公開鍵認証でログイン

以下のコマンドで秘密鍵を使用してログインします。パスワードが求められないことに注意してください。

>  ssh -i id_rsa username@localhost

SFTPでログイン

SFTP は SSH と同じ sshd_config を使用するので、以下のようにログインできます。

>  sftp username@localhost
>  sftp -i id_rsa username@localhost

ログインした後は、get, put コマンドでファイルの送受信ができます。

 

おわりに

駆け足でしたが、Windows 10 の OpenSSH サーバーの使い方はお分かりになったでしょうか。

以前はいろいろと面倒でしたが、Windows Server にも OpenSSH が組み込まれれば、Windows サーバーの管理がより便利になりそうですね。


スポンサーリンク





カテゴリー:ブログ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA