Vagrant起動時に「SSH auth method : private key」で止まってタイムアウトになる問題の解決

2022/7/10

(最終更新: 2022/7/10

問題

PowerShellを使ってvagrant upした際、

default: SSH auth method: private key

の表示のまま止まり、そのままタイムアウトになってしまう。

環境

  • Windows 11 Pro バージョン21H2
  • プロセッサ:AMD Ryzen 7 5825U with Radeon Graphics
  • 実装RAM:16GB
  • VirtualBox:6.1
  • Vagrant:2.2.19
  • box:ubuntu/jammy64

解決策

結論から言うと、考えられる原因は一つでは無いようです。ググればググるほど人によって解決方法が違いました。

私は以下の方法で解決しました。

Vagrantfileに以下記載を追記する

config.vm.provider "virtualbox" do |vb|
    # Workaround for https://www.virtualbox.org/ticket/15705
    vb.customize ['modifyvm', :id, '--cableconnected1', 'on']
end

すでに修正済みのバグのワークアラウンドのようですが、これでうまくいきました。

参考資料

2017年の情報ではありますが以下の記事が参考になりました。

vagrantでTimeoutした場合の対応方法(cable="true"版) - Qiita

タイムアウトしていても、VMは起動している

タイムアウトが出た状態でVirtualBoxマネージャーを開くと、「実行中」となっていることがわかります。

「実行中」となっている

そのため、Vagrantfileに追記したあと、一度電源オフしてから再度vagrant upする必要があります。

一度電源オフ

2回やるとうまくいくこともある

Vagrantfileに追記してからvagrant upをしてもうまくいかず、もう一度、停止→起動をするとちゃんと起動するという状況もありました。。。

追記:その後の状況

その後、以下のステップでうまくいっています。何とか一発で起動するようにしたい…。

vagrant upが失敗。 ②Oracle VM VirtualBoxマネージャーから停止する。 ③再度vagrant upを実行する。

その他の解決策

まとめ

PowerShellを使ってvagrant upした際、

default: SSH auth method: private key

の表示のまま止まり、そのままタイムアウトになってしまう問題について述べました。完全に解決はしていませんが、作業はできています。

環境周りに関してはまだまだ不明点も多いです。

追記

2022/10月

WindowsPCでLinux環境を使いたいときは、WSL2を使うことにしました

VirtualBox・Vagrantの環境は、構築作業に時間がかかっていたのと動作が重かったので、乗り換えました。今のところ快適です。

npm installが遅い問題が発生しましたが、以下の記事を参考に解決しました。

WSL2 でnpm installが遅い時のもう一つの対策 - Qiita

エラーの内容

エラーの全文はこちら。

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/jammy64' version '20220708.0.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.


個別連絡はこちらへ→Twitterお問い合わせ

プロフィール

プロフィールイメージ

はち子

事業会社のシステム部門で働きはじめて5年目の会社員。システム企画/要件定義/システムアーキテクチャ等。

Twitter→@bun_sugi

過去の記事について

はてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。(本ブログに移行中)

タグ一覧

関連記事

Copyright© 2024, エンジニアを目指す日常ブログ

お問い合わせ|プライバシーポリシー