Windows7 で ssh サーバ
〜 Windows でも sshd を (2) 〜
2018-12-06 作成 福島
TOP > tips > win07-sshd
Windows7 (正確には 8.1) には Telnet サーバが存在していたけれど、Windows10 では Telnet が削除され、
代わりに OpenSSH が採用されました。
Windows7 と Windows10 の管理を同様にしたいため、Windows7 を ssh サーバに対応させます。
(Windows10 に Telnet サーバを入れるよりは簡単なので)

この Win32-OpenSSH は、よそ様の Web ページで「Microsoft の公式版 OpenSSH」という表現を散見しますが、
Microsoft の公式ページ「SSH 経由の PowerShell リモート処理 | Microsoft Docs」からリンクされているので、たぶん本当なのでしょう。

そのリンク先に掲載されているインストール方法 (Install Win32 OpenSSH) が非常にわかりやすかったので、その和訳を本稿とします。

Win32 OpenSSH のインストール (テスト公開)

  1. まず、検討事項プロジェクトの範囲に注意すること。

  2. OpenSSH の最新版 (OpenSSH-Win32.zip または OpenSSH-Win64.zip) をダウンロードする。
    最新ダウンロードへの経路はこのページから得ることができる。

  3. 最終版の中身を "C:\Program Files\OpenSSH" として展開する。
    (この実行ファイルへの書き込み権限が SYSTEM と Administrator グループだけであることを確認すること。
    認証されたユーザには、読み取りと実行だけにすべき。)

  4. 管理者権限で PowerShell のコンソールを開き、以下を実行する。

    • cd "C:\Program Files\OpenSSH"    '<- 説明には無いが、install-sshd.ps1 はここにある
    • powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

  5. ファイアウォールを開き、sshd.exe に対して SSH 接続を許可する

    • New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

    注: New-NetFirewallRule コマンドは、Windows2012 以降のサーバだけ。
    ↑Windows10 にも New-NetFirewallRule コマンドは存在している。
    もし、(Windows10 のような) デスクトップ PC や Windows2008 R2 以前なら、以下を試すこと
    ↓今回は、Windows7 へのインストールなので、こちらを実行する。

    • netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

  6. sshd を開始する。(まだ作成されていなければ、ホストの鍵 (秘密鍵と公開鍵) が自動的に %programdata%\ssh\ に作成される。)

    • net start sshd

  7. 追記

    • デフォルトシェルを変更するにはここを参考にすること。
    • sshd サービスを自動起動にするためには以下を実行する。(※)
      • Set-Service sshd -StartupType Automatic
    • sshd の設定を古い版から移行するにはここを参考にすること。

    (※)サービスを自動起動にするには、下記のほうが慣れていると思います。
    1. コンピューターを右クリックし、「管理(G)」を選択して「コンピューターの管理」ウィンドウを開く。
    2. 左ペインの「サービスとアプリケーション」から「サービス」を選択する。
    3. 右ペインの「サービス」リストから「OpenSSH SSH Server」を探してダブルクリックする。
    4. 「OpenSSH SSH Server のプロパティ」画面で、スタートアップの種類(E) を「自動」に変更する。
Win32 OpenSSH のアンインストール