マイクロソフト製の 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
コメント