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 に手順が書いてある。
- PuTTYgen utilityを開く
- Loadボタンを押す
-
C:\Users\ユーザ名\.vagrant.d\
ディレクトリに移動 (Windows 10) - insecure_private_keyファイルをダブルクリック
- 表示されない場合は ファイルの拡張子 を
All Files (*.*)
に指定
- 表示されない場合は ファイルの拡張子 を
- 画面下部の『Number of bits in a generated key』の欄を2048にする
- Save private keyボタンを押し、ppk形式で保存
Vagrantfileの設定
-
vagrant init
してVagrantfile
を作成する - 作成されたVagrantfileに
config.ssh.insert_key = false
を追記する。- この設定を入れると、
C:\Users\ユーザ名\.vagrant.d\insecure_private_key
に対応する公開鍵が仮想マシンに登録される。
- この設定を入れると、
-
vagrant up
で仮想マシンを起動
SSHでログインする
- Connection > SSH > Auth をクリック
- 「Browse」と書かれたボタンを押して先程ppk形式で保存したファイルを選択
- 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