話題の記事

Win32-OpenSSHでWindowsからEC2へ簡単にSSH接続できるようになりました

2015.11.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、虎塚です。

MicrosoftのPowerShellチームが、OpenSSHをWindows向けに移植したWin32-OpenSSHを開発しています。

ちなみに、Win32-OpenSSHは、PowerShellだけでなくコマンドプロンプト (cmd) でも利用できます

2015年11月9日に公開されたpre release版を使ってみたのでご紹介します。Win32-OpenSSHによって、WindowsからLinuxへのSSH接続がびっくりするほど楽になります。

Win32-OpenSSHは何がうれしいか

1. WindowsからLinuxへ簡単にSSH接続できる

コマンドラインから利用可能なOpenSSHクライアントが入手しやすいLinuxやMacと違って、ローカルのクライアント環境がWindowsの場合、Amazon EC2のLinuxインスタンスにアクセスするには一手間必要でした。pem形式の鍵をPuttyで変換したり、Tera Termを使ったりしていた人も多いのではないでしょうか。

Win32-OpenSSHを使えば、AWSからダウンロードした鍵ファイルをそのまま利用して、LinuxインスタンスにSSHログインできます。

2. ローカルにWindows踏み台サーバを簡単に設置できる

Win32-OpenSSHには、sshだけではなくsshdが含まれています。ローカル環境のWindowsマシンを外部への踏み台サーバにしたい場合も、準備が簡単になりそうです。

3. ssh-keygenでキーペアを作成できる

さらに、Win32-OpenSSHにはssh-keygenも同梱されています。鍵ファイルを作成するために、WinSCPから取り出したPuTTYgenで作成して変換していた人も多いのではないでしょうか。これからは、Linuxのコマンドライクに鍵を作成できます。

4. sftp, sftp-serverもある

その上さらに、Win32-OpenSSHには、sftpsftp-serverも用意されています。FTPを使うときは公開鍵認証を使ったほうがいいとは思いつつも、Windows上では準備が面倒で使っていなかった人もいるのではないでしょうか。これからはバッチリです。

Win32-OpenSSHことはじめ

1. Win32-OpenSSHをダウンロードする

Win32-OpenSSHのGithubリポジトリにアクセスします。releaseページにバイナリファイルが用意されているので、OpenSSH-Win32.zipを選択してダウンロードしましょう。

2. zipファイルを展開する

ダウンロードしたzipファイルをローカルで展開します。OpenSSH-Win32フォルダが作成されますので、任意の場所に置きます。今回は、Cドライブ直下に置きました。

3. フォルダを環境変数PATHに追加する(オプション)

実行時にコマンドを指定しやすいように、ssh.exeを置いたフォルダにパスを通します。

[Windows]→[コンピューター]→コンテキストメニュー[プロパティ]→[システムの詳細設定]→[詳細設定]タブ→[環境変数]ボタンで、[環境変数]ウィンドウを開き、ユーザー環境変数の「PATH」の末尾に、ステップ2で配置したフォルダをセミコロン区切りで追加します。

4. コマンドラインからSSH接続する

PowerShellのコマンドライン、もしくは従来のコマンドプロンプトを開き、あらかじめ起動しておいたEC2インスタンスに接続します。パスを通した場合は次のコマンドで、まだの場合はssh.exeを絶対パス (例: C:¥OpenSSH-Win32¥ssh.exe) で指定しましょう。なお、ここではEC2のOSがAmazon Linuxのため、ログインユーザはec2-userとしています。

ssh -i KEY_FILE.pem ec2-user@XXX.XXX.XXX.XXX

PowerShellコマンドラインからEC2へのSSH接続に成功

Windows環境とは思えないくらい(?)簡単にSSH接続ができました!

おわりに

Windows環境で初めてAWSを利用する場合、最初のインスタンスログインで詰まってしまうケースがあったかと思いますが、Win32-OpenSSHを使った手順なら、ステップも少なく簡単です。正式リリースが待ち遠しいですね。

それでは、また。