はじめに
2018年4月に、Windows 10 の大型アップデートである Windows 10 April 2018 Update (1803) で、Windows 10 に OpenSSH サーバーが正式に組み込まれ使用できるようになりました。
今までは開発者モードでないと動作しなかったのですが、今回は正式リリースということですね。ですが、全然話題になっていないのでこの記事で Windows 10 の OpenSSH サーバーをご紹介したいと思います。
これは待望の機能ですしね。
実は、以前(2015年頃)から OpenSSH サーバーを Windows で立ち上げる方法はあったのですが、そちらについては以下の記事を参照してください。
目次
OpenSSH サーバーのインストール
OpenSSH サーバーのインストールは、まず、スタートメニューの[アプリと機能]にある[オプション機能の管理]をクリックします。
次に[機能の追加]をクリックします。この画面で、OpenSSHクライアントがすでにインストールされていることが分かりますね。
OpenSSH サーバーを選択して[インストール]をクリックします。
これで 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 サーバーの管理がより便利になりそうですね。
コメント