Windows 10の場合は、Bash on Utuntu on Windowsを使えば事足りるのだが、まだまだ、Windows 7や8/8.1も現役で活躍しているので、Windows PowerShellでOpenSSHを使いたいという場面は結構多い。
ということで、Windows PowerShellにOpenSSHをインストールする方法をメモしてみた。
先ずは、Windows PowerShellを管理者として実行する。
続いてPowerShell上で次のコマンドを打つ。
Set-ExecutionPolicy Unrestricted
セキュリティ上の危険さらされる可能性があるという警告の後、「実行ポリシーを変更しますか?」と問われるので、問題なければYと入力してエンターキーを押し、先に進む。
実行ポリシーの変更がなされたことを確認できたら、以下のコマンドを1行目から順番に実行する。
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex choco install openssh refreshenv
以上で、OpenSSHのインストールは完了。
いったんここで、PowerShellを終了し、通常モードでPowerShellを立ち上げ直す。これで、Linuxで使い慣れたsshコマンドがWindowsでも使えるようになる。
$ ssh hoge@www213.sakura.ne.jp -i .ssh/id_rsa -p 4321 $
上記の-iで指定しているのは、秘密鍵だが、PowerShell上でssh-keygenコマンドを実行した場合は、.sshフォルダはデフォルト(もちろん変更可能)で、C:\Users\[ユーザー名]内に生成されることになっている。
$ ssh hoge@www213.sakura.ne.jp -i .ssh/id_rsa -p 4321 $
.sshフォルダ内には、公開鍵id_rsa.publicも生成されるので、これをscpコマンドなどを使って、リモートサーバーに送る。
例えば、リモートサーバーがさくらのVPSであれば次のとおり。
$ scp -P 4321 .ssh/id_rsa.pub hoge@www123.sakura.ne.jp:~/.ssh/authorized_keys
この記事はココを参考にさせてもらった。