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 のモジュールのフォルダに変更します。
1 |
PS
C:\Users\xxxx>
cd
C:\OpenSSH |
公開鍵・秘密鍵の作成
一括で作成する場合はこのコマンドで作成します。
1 |
PS
C:\OpenSSH>.\ssh-keygen.exe
-A |
個別で作成する場合は、こんな感じで各鍵を作成します。
1 |
PS
C:\OpenSSH>
.\ssh-keygen.exe
-t
rsa
-f
ssh_host_rsa_key |
ポート22の開放
ファイアウォールでsshのポート22を開放します。
GUIでやってもいいのですが、せっかくなのでPowerShellで。
1 |
PS
C:\OpenSSH>
New-NetFirewallRule
-Protocol TCP
-LocalPort
22
-Direction Inbound
-Action Allow
-DisplayName SSH |
鍵認証設定
セットアップコマンドを実行します。
実際に行われていることとしては、ssh-lsa.dll の C:\Windows\system32\ へのコピーと、レジストリへの登録です。
1 |
PS
C:\OpenSSH>
cmd
/c
setup-ssh-lsa.cmd |
OSの再起動
再起動しないと、先ほどの鍵認証設定が反映されないので、潔く再起動します。
1 |
PS
C:\OpenSSH>
Restart-Computer |
OS再起動が完了したら、再度PowerShellを管理者として起動します。
サービスへの登録
サービスとして登録しましょう。削除するときは install の部分を uninstall にすればOKです。
1 |
PS
C:\OpenSSH>
.\sshd.exe
install |
sshdサービスの起動
早速起動してみましょう。
1 |
PS
C:\OpenSSH>
Start-Service sshd |
sshdサービスの自動起動設定
windows起動時に自動起動させたい場合は設定しておきましょう。
1 |
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
————————————–