OpenSSH for Windows

WSL (Windows Subsystem for Linux)が導入され、Windowsで直接Linuxが利用できるようになったことでWindowsネイティブなOpenSSHの必要性は低くなってしまったが、実はWindows 10にはすでにWindows版のOpenSSHが統合されている。「Linuxディストリビューションをインストールするつもりはないが、OpenSSH経由でほかのサーバにログインして作業を行う必要がある」というのであれば、これだけで十分に仕事をこなすことができる。

Windows版のOpenSSH (クライアント)については、次のように設定アプリケーションの「オプション機能」から機能を有効化することができる。

Windows 10のオプション機能: OpenSSHクライアント

このオプション機能を有効化すると、ssh.exeというコマンドがインストールされる。PowerShellからssh.exeコマンドについて調べてみると、このOpenSSHはC:\WINDOWS\System32\OpenSSH\ssh.exeとしてインストールされていることがわかる。執筆時点でのバージョンは7.7p1だ。ライブラリとしてはLibreSSL 2.6.5が使われていることがわかる。

OpenSSH for Windows version 7.7p1, libressl 2.6.5

これは次のようにWSL経由で実行されるsshコマンドとは別物であることがわかる。この場合、WSLで動作するUbuntu 18.04 LTSのsshよりもWindows版のOpenSSHのほうがバージョンが新しいことがわかる。

WSLで動作するUbuntu 18.04 LTSのsshコマンド

OpenSSHはLinuxを使う際には欠かすことのできない機能だ。WindowsにネイティブにOpenSSHの機能が導入されたのはこの点でとても意義がある。デスクトップやノートPC向けのOSとして現在最も普及しているのはWindows 10だ。このOSにOpenSSHが用意されているということは、Linuxにアクセスするための端末として利用できることを意味している。この点でもMicrosoftがLinuxの扱いに積極的であることがわかる。

OpenSSH for Windowsを使ってみよう

OpenSSH for Windowsの使い方は通常のOpenSSHと同じだ。次のようにssh.exeコマンドを実行すれば、sshdが動作しているほかのサーバにログインすることができる。

OpenSSH for Windowsの使用例

OpenSSHを多用するようになると、アクセス時のオプションや、アクセスに利用する鍵を管理する必要が出てくる。Windows版のOpenSSHは基本的にOpenSSHそのままなので、これまでLinuxやmacOSで使っていたOpenSSHの設定やスキルがそのまま利用できる。逆に、WindowsのOpenSSHで使い出した設定やスキルが、そのままLinuxやmacOSでも利用できることを意味している。

これまでWindowsには公式にOpenSSHが移植されてこなかったため、SSHプロトコルを実装したターミナルアプリケーションを個別に用意して利用する必要があった。その場合、設定やスキルはそのアプリケーションに限定されがちで、ほかのプラットフォームとスキルの共有がしにくいところがあった。しかし、ネイティブなOpenSSH for Windowsを使うと、そういった部分の問題を解消することができる。

OpenSSH for WindowsかOpenSSH on WSLか

WSL経由でLinuxディストリビューションが利用できるようになったため、わざわざOpenSSH for Windowsの機能を有効にして利用すべきか、それともWSL経由でLinuxディストリビューションのほうを利用するのか、判断が難しいところではないかと思う。

基本的にはWSLのほうが便利だとは思う。Linuxで利用できる豊富なコマンドやソフトウエアが利用できるというのは大きい。特にすでにLinuxの利用に精通している場合、OpenSSH for WindowsよりもWSL経由でLinuxのコマンドを利用した方が便利だろう。

一方、Linuxをほとんど使ったことがないとか、それほど使うつもりがないというのであれば、OpenSSHクライアントの機能を有効化して利用するというのは悪くない選択肢だ。WSLの機能はそれほど単純なものではないので、その挙動を理解しようとすればそれなりの知識と経験が必要になる。その点、OpenSSH for WindowsのほうはWindowsでネイティブに実行できるバイナリであり、その挙動を理解しやすいだろう。Windows Terminalも来年には正式版がリリースされるわけだし、OpenSSH for WindowsをWindows Terminalで使うというのは悪くない選択肢だ。

便利な不便かはケースバイケースなので何とも言えないが、どちらもインストールして共存させることもできる。OpenSSH for Windowsを使ったことがないのであれば、この機会に試してもらえればと思う。