新潟の空は今日も灰色

技術ネタ中心にいきたいけど、そんなにネタは持ってません。

(僕にとっては)OpenSSH for Windows がすごく良かったというお話し

概要

Windowsをホストマシンとして使うことを前提に、Linux/UNIX系のOSの管理をやろうとしたときに、僕にとってはPuTTYTeraTermよりも、OpenSSH for Windowsをいれた方が良かったというお話し。

背景

今、家(デスクトップ)でも外(ノート)でも、個人ではWindowsマシンを使っています。なお、会社ではMBAです。

Windows環境で、たとえばVirtualBox + Vagrant、たとえばAmazon EC2のような環境にログインしようと思ったらPuTTYなり、TeraTermなり、Poderosaなり、ChromeSSHクライアント使うなりといった選択肢になるんだと思います。

決まったホスト(IP)にしかログインしないのであれば、GUIで設定してそれらでも全然良いんですけど、たとえばコマンドラインvagrant sshコマンドは直接はたたけないですし、EC2をぼこぼこ建てたりつぶしたりしたときにIPが変わるときにはなかなか面倒です。EC2はまだ良いとして、vagrantでいくつかインスタンス作ったときにvagrant ssh appとかができないのは結構きつい…。

一方で、CygwinとかSUAはちょっと大げさすぎるし…。

そこで、一瞬思いついたのは、バッチファイルやGolangで、OpenSSHのsshコマンドと同様のものをパースして、PuTTYなどに渡してやるという案だったんですが、ただただ不毛であることに気づきまして。

根本的な話として、デスクトップのOSをLinuxにするとか、Linux仮想マシンを動かすという案もありましたが、仮想マシンでは結局どれか使わないと入れないし*1、そこそこゲームとかもしたいので、Windowsホストの方がうれしいのです。

「新しくMacでも買えば良いじゃん」と言うのは、お金くれるなら考えます。そこまでもらえてないです。辛い。

一番早い方法として、Windows版のOpenSSHを入れればそれだけで解決して、ちゃんと生産性があがったので紹介します。

これです。

mls-software.com

Windows用のSSH調べると、古いバージョンを配布してるのはすぐ引っかかるんですが、新しいのはここくらいしかなさそうです。やったらあたらしいです。ecdsa鍵だけじゃなくて、ed25519鍵もいけちゃうよ☆*2

もちろん、コマンドラインからvagrant sshもいけちゃいます。

ただし

自己責任でお願いしますね。

Linuxとか、最近だと、yumとかaptとかどこから落としてくるか大体分かるからいいけど、Win32だとそういう機構もないので、その辺りが辛いです*3。良い感じの認証機関とかないんですか。ないんでしょうね。

補足

ごめんなさい、生産性があがったのはSSHのおかげだけでは無いです。コマンドプロンプトをやめて、ConEmuを入れて、git-bash使うようになりました。とりあえず、今の手元の環境はこれでいいかなって思っています。

*1:VBoxとか、VMware Workstation Playerのコンソール使うとかってどうなんですかね?

*2:ただし、僕がログインしに行く環境はCentOSばっかりなのでログイン先が対応してない

*3:ストアアプリがんばれ。