Windows10でsshサーバを構築してみた
Windows10では、TelnetServerが無くなっています。そのため、TeraTerm等でログインしてコマンドが実行できません。
そこでフリーソフトのTelnetサーバを探したのですが、良いものがありませんでした。ということで気を取り直しまして、どうせならSSHサーバにしようと考え直し、SSHサーバにするためのフリーソフトを探していたところ、GitHubにWin32 OpenSSHというものが公開されていました。
というわけで、Win32 OpenSSHをインストールして、Windows10をSSHサーバにしてみました。
インストール手順は以下のとおり。
モジュールのタウンロード
GitHub Win32-OpenSSH より、モジュールのzipファイルをダウンロードします。
私は 12_22_2015 リリースの、Win32 版を選定しました。
インストール
解凍したモジュールを分かりやすいフォルダに配置します。
ここからは、C:\OpenSSH フォルダに配置したとして解説します。
Powershellの起動
管理者として起動します。
フォルダの移動
powershell上で、カレントティレクトリを、OpenSSH のモジュールのフォルダに変更します。
PS C:\Users\xxxx> cd C:\OpenSSH
公開鍵・秘密鍵の作成
一括で作成する場合はこのコマンドで作成します。
PS C:\OpenSSH>.\ssh-keygen.exe -A
個別で作成する場合は、こんな感じで各鍵を作成します。
PS C:\OpenSSH> .\ssh-keygen.exe -t rsa -f ssh_host_rsa_key
ポート22の開放
ファイアウォールでsshのポート22を開放します。
GUIでやってもいいのですが、せっかくなのでPowerShellで。
PS C:\OpenSSH> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
鍵認証設定
セットアップコマンドを実行します。
実際に行われていることとしては、ssh-lsa.dll の C:\Windows\system32\ へのコピーと、レジストリへの登録です。
PS C:\OpenSSH> cmd /c setup-ssh-lsa.cmd
OSの再起動
再起動しないと、先ほどの鍵認証設定が反映されないので、潔く再起動します。
PS C:\OpenSSH> Restart-Computer
OS再起動が完了したら、再度PowerShellを管理者として起動します。
サービスへの登録
サービスとして登録しましょう。削除するときは install の部分を uninstall にすればOKです。
PS C:\OpenSSH> .\sshd.exe install
sshdサービスの起動
早速起動してみましょう。
PS C:\OpenSSH> Start-Service sshd
sshdサービスの自動起動設定
windows起動時に自動起動させたい場合は設定しておきましょう。
PS C:\OpenSSH> Set-Service sshd -StartupType Automatic
参考:GUIでサービスの自動起動設定
画像のように、自動起動にしてください。
動作確認
TeraTermなどのsshクライアントで接続してみましょう。
OpenSSHをインストールしたWindows10のIPアドレスが192.168.0.20の場合の例です。
接続できましたね。
文字化けする場合
Windowsの文字コードはSJISなので、TeraTermの設定によっては文字化けします。
画像のように、漢字-受信 漢字-送信 共に SJIS に設定すればOKです。
ディスカッション
コメント一覧
鍵認証設定の
cmd /c setup-ssh-lsa.cmdの所で
現在ダウンロードした物には
setup-ssh-lsa.cmdがありませんでした
レジストリの登録はSCコマンドのことですよね
setup-ssh-lsa.cmdの内容を公開して頂けると
助かります
setup-ssh-lsa.cmd の中身です。
————————————–
if %PROCESSOR_ARCHITECTURE%==x86 (
set lsadll=%~dp0x86\ssh-lsa.dll
)
if %PROCESSOR_ARCHITECTURE%==AMD64 (
set lsadll=%~dp0x64\ssh-lsa.dll
)
copy %lsadll% %windir%\system32\
reg add HKLM\System\CurrentControlSet\Control\Lsa /v “Authentication Packages” /t REG_MULTI_SZ /d msv1_0\0ssh-lsa.dll -f
————————————–