Windows資料一覧

Windows 10でPowerShell/Win32-OpenSSHを使う手順

2015/10/24更新

対応バージョン: 10 Home

Windows 10用に移植中のOpenSSH(PowerShell/Win32-OpenSSH)にバイナリが提供されたのでsshdとして使用する手順を示す。

まず以下からOpenSSH-Win32.zipをダウンロードする。

ダウンロードしたファイルを解凍し、コマンドラインで以降の作業を実施する。作業は全て管理者権限で行う。

まずSSHのホストキーを作成する。コマンド実行中に聞かれるパスフレーズは入力しなくてよい。

c:\tmp\OpenSSH-Win32> ssh-keygen.exe -t rsa -f ssh_host_rsa_key

c:\tmp\OpenSSH-Win32> ssh-keygen.exe -t dsa -f ssh_host_dsa_key

c:\tmp\OpenSSH-Win32> ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key

c:\tmp\OpenSSH-Win32> ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_key

c:\tmp\OpenSSH-Win32> dir ssh_host*
:
2015/10/24  00:03               680 ssh_host_dsa_key
2015/10/24  00:03               600 ssh_host_dsa_key.pub
2015/10/24  00:03               232 ssh_host_ecdsa_key
2015/10/24  00:03               172 ssh_host_ecdsa_key.pub
2015/10/24  00:04               406 ssh_host_ed25519_key
2015/10/24  00:04                92 ssh_host_ed25519_key.pub
2015/10/24  00:02             1,702 ssh_host_rsa_key
2015/10/24  00:02               392 ssh_host_rsa_key.pub
               8 個のファイル               4,276 バイト
               0 個のディレクトリ  123,108,810,752 バイトの空き領域

次にPowerShellを起動してファイアウォールの設定を行う。TCP/22ポートを外部から接続許可とする。

C:\tmp\OpenSSH-Win32> powershell

PS C:\tmp\OpenSSH-Win32> New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

PS C:\tmp\OpenSSH-Win32> exit

C:\tmp\OpenSSH-Win32>

ファイアウォールの画面を見てみるとルールが追加されていることが確認できる。

最後にセットアップコマンドを実行する。これによりOpenSSH実行に必要なDLLのインストールとレジストリの定義が行われるのでOSを再起動する。

C:\tmp\OpenSSH-Win32> setup-ssh-lsa.cmd

C:\tmp\OpenSSH-Win32>if AMD64 == x86 (set lsadll=C:\Users\kogur\Downloads\OpenSSH-Win32\OpenSSH-Win32\x86\ssh-lsa.dll )

C:\tmp\OpenSSH-Win32>if AMD64 == AMD64 (set lsadll=C:\Users\kogur\Downloads\OpenSSH-Win32\OpenSSH-Win32\x64\ssh-lsa.dll )

C:\tmp\OpenSSH-Win32>copy C:\Users\kogur\Downloads\OpenSSH-Win32\OpenSSH-Win32\x64\ssh-lsa.dll C:\Windows\system32\
        1 個のファイルをコピーしました。

C:\tmp\OpenSSH-Win32>reg add HKLM\System\CurrentControlSet\Control\Lsa /v "Authentication Packages" /t REG_MULTI_SZ  /d  msv1_0\0ssh-lsa.dll -f
この操作を正しく終了しました。

OS再起動後はsshdが動かせる状態になるがデーモンモードで動かせるのはWindows 10のPro以降なのでHomeの場合は以下のようにしてフォアグラウンドで動かす。

以下からPsToolsをダウンロードして解凍する。
PSToolsフォルダ内のpsexec.exeを実行する。
C:\tmp\PSTools> psexec.exe -i -s cmd.exe
新たに起動したコマンドプロンプトの画面でsshd.exeを起動する。
C:\Windows\system32> cd c:\tmp\OpenSSH-Win32

C:\tmp\OpenSSH-Win32> sshd.exe
[Build Oct 13 2015 10:49:11]

コマンドプロンプトを起動してローカルホストに接続し、「ユーザ@ホスト ユーザのホームフォルダ」形式のプロンプトが表示されれば正しく接続されている。

C:\Windows\system32> cd c:\tmp\OpenSSH-Win32

C:\tmp\OpenSSH-Win32> sshd.exe localhost
xxxxx@localhost's password: *************
Microsoft Windows [Version 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

xxxxx@W1 C:\Users\xxxxx>

sshdをデーモンモードで動作させる手順については公式ドキュメントの6.に記載されているのでここでは割愛する。

Deploy Win32 OpenSSH

尚、各種設定は通常のsshdと同じようにsshd_configで行える。

参考資料

OpenSSH (当サイト内)

関連記事