Windows 10上でOpenSSHを使いたいという場面では、Bash on Utuntu on Windowsを使うという選択がができますが、Windows 7や8/8.1ではできません。
こうしたときは、Windows PowerShellでOpenSSHを使うことになります。
ということで、Windows PowerShellにOpenSSHをインストールする方法をまとめてみました。
Windows PowerShellを管理者として実行
先ずは、スタートメニューからWindows PowerShellを探して、これを右クリック。コンテクストメニューから「管理者として実行」を選びます。
続いてPowerShell上で次のコマンドを打ち込みます。
> Set-ExecutionPolicy Unrestricted
「実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると…」と文言で、セキュリティ上の危険さらされる可能性があるという説明があり、最後に「実行ポリシーを変更しますか?」と問われます。
問題ないと判断してYと入力してエンターキーを押せば、 実行ポリシー が変更されます。
OpenSSHのインストール
実行ポリシーが無事に変更できたら、以下のコマンドを上から順番に実行します。
> iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
> choco install openssh
> refreshenv
以上で、OpenSSHのインストールは完了です。
ここでいったん、PowerShellを終了し、通常モードでPowerShellを立ち上げ直します。これで、Linuxで使い慣れたsshコマンドがWindows PowerShellでも使えるようになっている筈です。
秘密鍵と公開鍵が生成される場所
例えば、 Windows PowerShell上で、次のようなコマンドを実行してみてください。
> ssh hoge@www213.sakura.ne.jp -i .ssh/id_rsa -p 4321
上記の-iで指定しているのは、秘密鍵です Windows PowerShell上でもLinuxのターミナル上でも、OpenSSHの使い方は何ら変わるところはありませんが、PowerShell上でssh-keygenコマンドを実行した場合、.sshフォルダはデフォルト(もちろん変更は可能)で、C:\Users\[ユーザー名]内に生成されるということは覚えておいてください。
.sshフォルダ内には、公開鍵id_rsa.publicも生成されますので、これをscpコマンドなどを使って、リモートサーバーに送ります。
例えば、リモートサーバーがさくらのVPSであれば次のとおりです。
$ scp -P 4321 .ssh/id_rsa.pub hoge@www123.sakura.ne.jp:~/.ssh/authorized_keys
この記事はこちらを一部参考にさせてもらいました。