Windows 資料一覧
2015/10/24更新
対応バージョン: 10 Home
Windows 10用に移植中のOpenSSH(PowerShell/Win32-OpenSSH)にバイナリが提供されたのでsshdとして使用する手順を示す。
まず以下からOpenSSH-Win32.zipをダウンロードする。
https://github.com/PowerShell/Win32-OpenSSH/releases
ダウンロードしたファイルを解凍し、コマンドラインで以降の作業を実施する。作業は全て管理者権限で行う。
まず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をダウンロードして解凍する。
https://technet.microsoft.com/ja-jp/sysinternals/bb896649.aspx
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 (当サイト内)OpenSSH (Qiita)