Windows環境でsshクライアントを設定するには?

前回はMac OS XやLinux/*BSDからsshクライアントを使うための設定方法を紹介した。これらのプラットフォームには最初からsshコマンドが用意されているので、特に難しいことはなかった。だが現在、企業ではWindowsを使っているケースのほうが圧倒的に多い。

Net Applicationsの報告によれば、2015年12月におけるデスクトップ向けOSのうち、Windowsのシェアは91%以上だという。さらにバージョン別に見るとWindow 7が55%を超えており、向こう数年間は「2人に1人がWindows 7を使っている」という状況が続きそうだ。そこで本連載では、Windows 7を使ってsshクライアントを設定する方法について説明することにしたい。

ただし、ここで問題がある。今、Windowsでsshを使い始めるには、少しばかり時期が悪い。マイクロソフトはこれまでOpenSSHを正式にサポートしていなかったため、通常はssh機能を持ったターミナル・アプリケーションをインストールして利用するというのが定石だった。

しかし、ここに来て状況が変わり始めた。マイクロソフトのPowerShellチームが昨年、「今後正式にOpenSSHをサポートする」と発表したのだ。すでに昨年末までに数度のバイナリ・リリースも実施しており、今年春には正式版のリリースが予定されている。つまり、これからはマイクロソフトが提供するOpenSSHを利用するのが、Windowsでのデファクト・スタンダードになっていく可能性が高い。そうなれば、導入手順も洗練され、簡便化されるだろう。

とは言え、それは今春以降の話であり、今バイナリ・リリースを利用する際はまだ少し手間がかかるのだ。今回からは数回にわたり、現段階におけるWindowsでのsshクライアントの設定方法について紹介していくが、多少面倒な作業が伴うのはそういう事情である。

GitHubからOpenSSHのWindows向けバイナリを入手しよう

Windows向けのOpenSSHのバイナリは、GitHubで提供されている。まずは最新版のビルド済みバイナリをダウンロードしてほしい。

GitHub PowerShell/Win32-OpenSSHからバイナリをダウンロードする

ダウンロードしたファイルを展開すると、「ssh.exe」というコマンドを確認できる。

ssh.exeなどのコマンドを確認できる

この青いコマンドプロンプトを表示しているアプリケーションは、「PowerShell」という、Mac OS XやLinuxのターミナルのようなものだ。スタート・メニューの「プログラムとファイルの選択」から検索すると、見つけやすいだろう。基本的には、このアプリケーション上でssh.exeを実行して利用することになる。

環境変数PATHの設定とコマンドのインストール

コマンドを利用できるようにするために、環境変数PATHに設定されているフォルダにssh.exeをコピーしておきたい。だが、デフォルトの状態では該当するフォルダは設定されていない。

そこで、とりあえずユーザーのホーム・フォルダに「bin」というフォルダを作成し、そこにssh.exeをコピーする(ここでは、C:\Users\daichi\binとなる)。そして、このフォルダへのパスを環境変数PATHに追加すれば、フォルダ内のファイルをコマンドとして利用できるようになる。

C:\Users\daichi\binフォルダにssh.exeをコピーした

環境変数PATHにC:\Users\daichi\binを追加するには「$env:path += ‘;C:\Users\daichi\bin’」のように入力/実行すればよいわけだが、このやり方だとPowerShellを起動するたびに実行しなければならない。それは面倒なので、PowerShell起動時に自動的にこの処理が実行されるように、自動実行用のファイルにその旨を書き込んでおく。自動実行用ファイルへのパスは$profileに設定されているので、まずはパスを確認しよう。

自動実行用ファイルへのパスは、「echo $profile」と入力/実行すると確認できる

今回の場合、「C:\Users\daichi\Documents\WindowsPowerShell\Microsoft.PowerShwll_profile.ps1」が自動実行用のファイルだ。Mac OS XやLinuxでいうところの~/.profileや~/.bashrcのようなものだと考えておけばよいだろう。メモ帳などお持ちのテキスト・エディタで直接ファイルを開いてみてほしい。

メモ帳(notepad)でプロファイルを開く

もし、ファイルがまだ存在しなければ以下のようなダイアログが起動するので、「はい」を選択してファイルを新規作成する。

ファイルがまだ存在しない場合は、新規作成する

ファイルを開いたら、先ほどの処理を書き込んで保存する。

環境変数PATHに、ssh.exeなどをコピーしたフォルダのパスを追加

そして最後に、これがちょっとばかり手間なのだが、このファイルが実行できるようにポリシーを変更する必要がある。この操作は管理者権限で行う必要があるため、スタート・メニューから「Windows PowerShell Modules」というアプリケーションを検索して起動し、「Set-ExcutionPolicy RemoteSigned」と入力して変更する。

$profileが起動時に実行されるようにポリシーを変更

なお、PowerShellとPowerShell Modulesは見た目が似ているが、PowerShell Modulesはタイトル・バーに「管理者」という文字が表示されるし、アイコンにもシステム管理者的なイメージを抱かせる盾のアイコンが付随しているので、その辺りで見分けていただきたい。

ssh.exeの動作を確認してみよう

ここまでの設定が適切にできていれば、PowerShell起動後に環境変数PATHの設定を確認すると、「C:\Users\daichi\bin」が追加されているはずだ。

環境変数PATHに「C:\Users\daichi\bin」が追加された

そして、ssh.exeのパスが「C:\Users\daichi\bin\ssh.exe」となっていることが確認できれば、今回の作業は成功だ。

ssh.exeのパスが「C:\Users\daichi\bin\ssh.exe」になっている

これで、ssh.exeコマンドを実行すると、サーバにログインできるようになる。

Windows PowerShellでssh.exeを実行してサーバにログイン

もし今後、現在開発中のsshのバイナリがアップデートされた場合は、今回コピーしたファイルを上書きすればよい。

今回のおさらい

今回のおさらいは次のとおりだ。

  • マイクロソフトは、WindowsでのOpenSSH正式サポートへ向けた開発を進めている
  • Windows OpenSSHの正式リリースは、2016年春以降に予定されている
  • 開発中ではあるものの、GitHubからビルド済みファイルをダウンロードし、PowerShellで利用できる
  • インストールすれば、使い方はMac OS XやLinux/*BSDと同じ

現状ではやや導入手順が煩雑なのが難点だが、正式版がリリースされたらもっと簡単になると期待したい。クライアント側のOSが変わっても設定は使い回せるので、Linuxユーザーもこの機会に一度、WindowsでOpenSSHを使ってみてほしい。