[Vagrant] VagrantfileでSSH秘密鍵のファイルパスを指定する方法



Nプログラマ(@Nprog128)です。

久しぶりに起動したVagrantのVMに接続しようとしたら、SSH秘密鍵関連が出てしまいました。

なプ

地味に焦る、、、!

おそらくPCの環境が変わってしまったため、SSHの秘密鍵のファイルパス指定が存在しない場所を指定しているんだと思います。

ということで、Vagrantfileで秘密鍵のファイルパスを指定してみました。

目標

  • Vagrantのsshの秘密鍵をVagrantfileで指定する
  • SSHの秘密鍵がある(重要)

公式ドキュメントの確認

Vagrant公式サイトのドキュメントから探します。

» Vagrant by HashiCorp

ページ上のメニューのDocs > 左メニューのVagrantfile > 展開されたVagrantfileメニューのconfig.ssh とクリックして目的のページまで移動します。

秘密鍵なので英単語のprivateでページ内検索するとヒットしました。これを使えば良さそうです。

blockquoteの画像

config.ssh.private_key_path (string, array of strings)

blockquoteの画像

ドキュメントによれば秘密鍵は複数指定できるみたいですが、今回は1つだけを指定します。

Vagrantfileへ設定する

Vagrantfileをエディタで開くと、以下のような記述があると思います。

1Vagrant.configure("2") do |config|

この次の行に、接続に使うssh秘密鍵のファイルパスを記述します。

1Vagrant.configure("2") do |config|
2  config.ssh.private_key_path = "秘密鍵のパス"  # ssh秘密鍵のファイルパスを指定

これで起動(vagrant up)や再起動(vagrant reload)をしてみて、SSHで接続できればオッケーです。

なプ

別のエラーが表示されたら対処しましょう。。。(白目)

秘密鍵自体を作り直したい場合

肝心の秘密鍵がない場合はどうしたらいいのでしょうか。

もし仮想OSのrootアカウントが分かっている場合は、VM(VirtualBoxやVMWare Fusionなど)から直接ログインして鍵のペアを作り設定をすれば、接続できるようになるはずです。

なプ

VM内で秘密鍵/公開を作って、それをホストOSに持ってきて…etc

鍵は超大事なので、紛失しないように注意しましょう。。。

おわりに

今回は、VagrantfileでSSHの秘密鍵のファイルパス指定を設定する、という内容でした。

基本的に環境構築で準備されたVagrantfileを使っていたことが多いので、ドキュメントを眺めながら色々な設定方法を勉強していきたいと思います。

それでは、このへんで。
バイナリー!

\ ちょっとお買い物 /