vagrant ssh が原因不明のエラーになる理由と解決方法(Win10)

2019年4月17日

パソコンの画面の前で頭を抱えてる人

開発環境によってはWindows10でvagrantを使用している方もいると思いますが、それまで問題なく使えていたvagrant sshコマンドが、ある日突然エラーになり立ち上げたOSにログイン出来なくなってしばらく解決できずに困ったことがあります。

思い返してみるといくつか原因として思い当たる節があります。Windows10で大型アップデートを行ったり、Windows Subsystem for Linux(通称WSL)でdebianをインストールしたりしました。

エラーの原因

原因としてはWindowsのパッケージで「OpenSShクライアント」というのがあり、それが入っているとvagrant sshで悪さをしてエラーになることが分かりました。

vagrantに付属しているsshコマンドが使われずにWindows側のsshコマンドが起動してしまってオプションが異なるためエラーになっていたのだと思います。

Windows10の大型アップデートのタイミングで勝手に追加されたのだと思います。勝手に入れられたWindows10標準のパッケージが悪さをしているとなかなか気づけません・・・。原因の特定に随分と時間がかかってしまいました。

エラーの解決方法

解決策としてはWindowsの「OpenSSHクライアント」をアンインストールすることです。これで元通りvagrant sshコマンドが正常に動作するようになりました。

アンインストールは簡単です。タスクバーのスタートボタンを押し歯車マークの「設定」を押してWindows10の設定画面を起動します。

そして「アプリ」を選択して「アプリと機能」の画面を表示させます。ここに「オプション機能の管理」というリンクがあるのでクリックして「オプション機能の管理」に移動します。

Windowsの設定画面
Windowsのアプリと機能画面

オプション機能のリストに「OpenSSHクライアント」というパッケージが見つかったら選択して「アンインストール」ボタンを押せばシステムから削除されて完了です。

Windowsのオプション機能の管理画面

windows10でvagrantを使用しておりsshに問題を抱えてる方は試してみて下さい。