マイクロソフト製OpenSSHでSSHサーバを設定する

ALL
スポンサーリンク

マイクロソフト製の OpenSSHサーバ のインストール・設定方法についてです。

2017.7.26 下記の記事の方を参照してください
マイクロソフト製SSHサーバをパッケージ管理システムでインストールする パソコン鳥のブログ

スポンサーリンク

ダウンロード・準備

OpenSSH-Win32.zip または OpenSSH-Win64.zip を下記からダウンロードします。

なお、2016年10月25日時点で最新版(v0.0.2.0)とv0.0.1.0 は ssh接続の際に日本語が文字化けするので、v0.0.0.9 をお勧めしします。

[2016年10月25日時点]

    • 最新版(但し、ssh接続の際に日本語が文字化け)

https://github.com/PowerShell/Win32-OpenSSH/releases/latest

    • 文字化けしない中で最新のもの

https://github.com/PowerShell/Win32-OpenSSH/releases/tag/v0.0.0.9

インストール先ディレクトリを作成し、ダウンロードした内容をそこに展開します。
ここでは、C:\Program Files\OpenSSH にします。

インストール先が C:\Program Files\OpenSSH と違う場所にする場合は、展開したファイル sshd_config の次の行の C:/Program Files/OpenSSH を、インストール先に合わせて書き換えて下さい。

Subsystem    sftp    C:/Program Files/OpenSSH/sftp-server.exe

インストール

管理者でコマンドプロンプトを開き、次の各コマンドを実行していきます。

cd C:/Program Files/OpenSSH
powershell -executionpolicy bypass -file install-sshd.ps1

上のコマンド実行で赤字で「New-Service : 次のエラーのため、サービス ‘ (ssh-agent)’ を作成できません: アクセスが拒否されました。」と表示された場合は、管理者でコマンドプロンプトを開いていません。
緑字で「sshd and ssh-agent services successfully installed」と出た場合はOKです。

次に下のコマンドを実行します。

.\ssh-keygen.exe -A

次のファイルが出来ます。
ssh_host_dsa_key
ssh_host_dsa_key.pub
ssh_host_ecdsa_key
ssh_host_ecdsa_key.pub
ssh_host_ed25519_key
ssh_host_ed25519_key.pub
ssh_host_rsa_key
ssh_host_rsa_key.pub

下記を実行します。

Windows10の場合
powershell -executionpolicy bypass -file install-sshlsa.ps1
Windows7の場合
reg add HKLM\System\CurrentControlSet\Control\Lsa /v "Authentication Packages" /t REG_MULTI_SZ /d msv1_0\0ssh-lsa.dll -f
copy .\ssh-lsa.dll %SystemRoot%\system32\

続けて下記を実行します。

powershell -Command "Set-Service sshd -StartupType Automatic"
powershell -Command "Set-Service ssh-agent -StartupType Automatic"

最後に再起動して、インストール完了です。

設定

ファイアウォールの設定

Windowsファイアウォールの設定で、22番ポートへのTCP接続を許可して下さい。
Windows7,10 では管理者でコマンドプロンプトを開き、下記コマンドで設定できます。

netsh advfirewall firewall add rule name="SSH Port" dir=in action=allow protocol=TCP localport=22

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

公開鍵認証を行う場合は、続けて次を実施します。

公開鍵認証の為の設定

デフォルトで公開鍵認証が可能です。
(sshd_config の RSAAuthentication、PubkeyAuthentication は yes です)

クライアントPCで作成した公開鍵をユーザ環境で設定します。
鍵の生成については、次の記事の鍵を参照して下さい。(下記記事の例では id_rsa.pub です)

公開鍵認証による接続方法(sshコマンドの場合)
公開鍵認証による接続方法(PuTTYの場合)
公開鍵認証による接続方法(Tera Termの場合)

公開鍵を今回OpenSSHをインストールした Windowsマシンの、C:\Users\ユーザアカウント名 の箇所にコピーして下さい。

コマンドプロンプトを開き(注:管理者として開かないこと)、下記コマンドで .ssh ディレクトリを作成します。

mkdir .ssh

クライアントPCで作成した公開鍵(ここでは id_rsa.pub )を設定します。

Tera Term や ssh-keygenコマンドで作成した場合

type id_rsa.pub >> .ssh\authorized_keys

PuTTYで作成した場合
ssh-keygen の -iオプションで、puttygen で作成した公開鍵を OpenSSH 互換の公開鍵に変換します。
インストール先が C:/Program Files/OpenSSH ではない場合、そこに合わせて変更して下さい。

"C:/Program Files/OpenSSH/ssh-keygen" -i -f id_rsa.pub >> .ssh/authorized_keys 

これで、公開鍵認証の設定は完了です。
クライアントPCから鍵認証で接続できます。

アンインストール

Windowsファイアウォールの設定で、22番ポートへのTCP接続の許可設定を削除して下さい。
Windows7,10 では管理者でコマンドプロンプトを開き、下記コマンドで削除できます。

netsh advfirewall firewall delete rule name="SSH Port"

管理者でコマンドプロンプトを開き、次のコマンドを実行します。

powershell.exe -executionpolicy bypass -file uninstall-sshd.ps1

続けて次のコマンドを実行します。

Windows10の場合
powershell.exe -executionpolicy bypass -file uninstall-sshlsa.ps1
Windows7の場合
reg add HKLM\System\CurrentControlSet\Control\Lsa /v "Authentication Packages" /t REG_MULTI_SZ /d msv1_0 -f
del %SystemRoot%\system32\ssh-lsa.dll

これでアンインストールは完了です。

参考

Home · PowerShell/Win32-OpenSSH Wiki · GitHub
Install Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki · GitHub
install-sshlsa.ps1 does not work on Windows 2008 R2 Update 1 (64 bit) · Issue #189 · PowerShell/Win32-OpenSSH · GitHub
Installing SFTP/SSH Server on Windows using OpenSSH :: WinSCP

コメント