Edited at

Vagrantで立てたVMにSSHするまで (Windows)

More than 1 year has passed since last update.

MacやLinux上でVagrantで仮想マシンを立ててリモートログインするまでは簡単なのだけど、Windowsでは直接 vagrant ssh が叩けないので手順が多少面倒になる。

そのため、Windows上でVagrantを使って立てた仮想マシンにログインするまでの手順をここに記しておく。

なお、本稿ではsshクライアントとしてputtyを使用する。

また、Vagrantおよびputtyのインストール方法については割愛する。


問題

vagrant up で立てたVMに対してputtyなどからSSHでコンソールを取ろうとしたとき、『No supported authentication methods available (server sent: public key)』というエラーが出てログインができない。


解決法


insecure_private_keyをPuTTY形式(.ppk)に変換

http://qiita.com/pakiran/items/eeeb736cbef5d8b609db に手順が書いてある。


  1. PuTTYgen utilityを開く

  2. Loadボタンを押す


  3. C:\Users\ユーザ名\.vagrant.d\ ディレクトリに移動 (Windows 10)

  4. insecure_private_keyファイルをダブルクリック


    • 表示されない場合は ファイルの拡張子 を All Files (*.*) に指定



  5. 画面下部の『Number of bits in a generated key』の欄を2048にする

  6. Save private keyボタンを押し、ppk形式で保存


Vagrantfileの設定



  1. vagrant initしてVagrantfileを作成する

  2. 作成されたVagrantfileに config.ssh.insert_key = falseを追記する。


    • この設定を入れると、 C:\Users\ユーザ名\.vagrant.d\insecure_private_key に対応する公開鍵が仮想マシンに登録される。




  3. vagrant upで仮想マシンを起動


SSHでログインする


  1. Connection > SSH > Auth をクリック

  2. 「Browse」と書かれたボタンを押して先程ppk形式で保存したファイルを選択

  3. Sessionの欄にログインに必要な情報を入力

上記の手続きで、ログインができる。


(参考) Vagrantfileの設定例


Vagrantfile

# -*- mode: ruby -*-

# vi: set ft=ruby :

Vagrant.configure("2") do |config|
config.vm.box = "debian/stretch64"

# 追記した箇所
config.ssh.insert_key = false

config.vm.network "private_network", ip: "192.168.33.10"

config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
end