質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.10%

vagrant up で default: SSH auth method: private key より先に進まない問題

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 496

Katsuma-F

score 6

最終目的:VagrantでのSSH接続がしたい

前提情報

ドットインストールの"ローカル開発環境の構築 [macOS編]"で環境構築をした、Vagrant, VirtualBox初学者です。
フォルダ階層は下記の様になっています。
/Users/ユーザー名/MyVagrant/MyCentOS
「MyCentOS」というフォルダ上で vagrant コマンドを実行しています。

MacBook-Pro:.ssh ユーザー名$ pwd
/Users/ユーザー名/MyVagrant/MyCentOS/.ssh
MacBook-Pro:.ssh ユーザー名$ ls -la
total 0
drwxr-xr-x   2 ユーザー名  staff   64  1 27 19:56 .
drwxr-xr-x  14 ユーザー名  staff  448  2  3 21:35 ..

環境

  • macOS Catalina 10.15.3
  • VirtualBox 5.2.36
  • Vagrant 2.2.6

発生している問題

 vagrant up で default: SSH auth method: private key より先に進まない 

MacBook-Pro:MyCentOS ユーザー名$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bento/centos-6.8' version '2.3.4' 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: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> 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.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.


vagrant up ができているか確認

MacBook-Pro:MyCentOS ユーザー名$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.


この直後に vagrant ssh をすると、

MacBook-Pro:MyCentOS ユーザー名$ vagrant ssh
ssh_exchange_identification: read: Connection reset by peer


このように、SSH接続ができなくて困っています。

試したこと

同じ問題が記載されていると思った下記のHatena Blogを参考に解決しようしています。
vagrant upでprivate keyより先に進まない症状
しかし、理解できないことが2つあるので教えていただきたいです。
記事中の、

作成した公開鍵を
/Users/hoge/MyVagrant
に貼り付け


とは、直前で作成したpublic_keyというファイルをMyVagrant/ に貼り付けるという作業で間違いないでしょうか?

emacs public_key
公開鍵をコピー


上記のコマンドは、秘密鍵から作成した公開鍵を具体的にどうすることなのでしょうか?

これは、作成したpublic_keyファイルを /Users/ユーザー名/MyVagrant/MyCentOS/.ssh/ に配置&上書きすることなのではないかと下記のQiitaの記事を読んで自分なりに推測していますが、ご指摘のほどよろしくお願い申し上げます。
VagrantでSSH鍵の設定 - [Authentication failure. Retrying…]の対処策



MacBook-Pro:MyCentOS ユーザー名$ ssh -vvv vagrant@localhost -p 2222 .vagrant/machines/default/virtualbox/private_key
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/ユーザー名/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: resolving "localhost" port 2222
debug2: ssh_connect_direct
debug1: Connecting to localhost [::1] port 2222.
debug1: connect to address ::1 port 2222: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file /Users/ユーザー名/.ssh/id_rsa type 0
debug1: identity file /Users//.ssh/id_rsa-cert type -1
debug1: identity file /Users//.ssh/id_dsa type -1
debug1: identity file /Users//.ssh/id_dsa-cert type -1
debug1: identity file /Users//.ssh/id_ecdsa type -1
debug1: identity file /Users//.ssh/id_ecdsa-cert type -1
debug1: identity file /Users//.ssh/id_ed25519 type -1
debug1: identity file /Users//.ssh/id_ed25519-cert type -1
debug1: identity file /Users//.ssh/id_xmss type -1
debug1: identity file /Users//.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
ssh_exchange_identification: read: Connection reset by peer


-iオプションを付けた場合

MacBook-Pro:MyCentOS ユーザー名$ ssh -vvv vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/ユーザー名/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: resolving "localhost" port 2222
debug2: ssh_connect_direct
debug1: Connecting to localhost [::1] port 2222.
debug1: connect to address ::1 port 2222: Connection refused
debug1: Connecting to localhost [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file .vagrant/machines/default/virtualbox/private_key type -1
debug1: identity file .vagrant/machines/default/virtualbox/private_key-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
ssh_exchange_identification: read: Connection reset by peer

最終的にはvagrant destroyをして、環境を再構築することになりました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

privateキーは、sshする側に。
publicキーは、sshされる側、される先に。
という原理原則があります。

ここで必要なのは、
・VagrantのBoxの中の
・vagrantアカウントに
・publicキーを置く
という作業です。

すなわち、例えばCentOS
(そしておそらく殆どのLinux)の場合、
/home/vagrant/.ssh/authorized_keys
のファイルの中に公開鍵の行を記載する。というものです。

これなんか参考になるかな

閑話休題
さて、そもそもvagrantは内部的にはVagrantコマンドを実行している場所に存在するprivate keyを使って、仮想マシンにsshして仮想マシンの中の公開鍵を使って認証してもらって接続しているだけです。

ですからこの辺のデバッグはこんな感じにできます。

ssh -vvv vagrant@localhost -p "2222" -i .vagrant/machines/"VM、Box名"/virtualbox/private_key

(すいません、-iオプションが抜けていました。鍵ファイルを指定するオプションになります)
-pの後の数字は、vagrant upした後に出てくるポート番号、-vvvは、デバッグ用に冗長でログ表示出すというオプションです

こうするとどこで接続に失敗しているのか、わかりますよ。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/02/06 12:57 編集

    vagrant sshができない今、此処から先は、authorized keyをどうにかして置く、というのが直球な解答なのですが、提案できるのは、以下でしょうか。
    単純なsshを試してみて、これがだめな場合はVirtual BoxのGUIを使って、活路を開きます。

    ■ 普通にsshしてみる
    Boxの中のopensshの設定次第ですが、鍵認証を使わなくても、パスワード認証も通るようになっている可能性があります。
    なので、MacOSから以下のように鍵指定なしで接続してみてください。接続ができれば、公開鍵を設定しなおしてみてください。

    ssh -vvv vagrant@localhost -p "2222"

    パスワードは、多分"vagrant"になっていると思います。
    そうして接続した後、authorized_keysを編集してください。

    ■ ファイル共有を強引にして持ち込む
    VirtualBoxのGUIから、共有フォルダー(ファイル共有機能)で公開鍵を共有し、CentOSの(Virtual Boxのディスプレイ)画面から、
    cat /path/to/authorized_keys >> /home/vagrant/.ssh/authrized_keys
    する方法です。
    共有フォルダーに関しては、Virtual Boxの仮想マシンの設定(歯車アイコン)から行ってください。
    ただし、Vagrant Boxの中にインストール済みのものVirtual BoxのGuest Additionsのバージョンが、MacOS側の、Virtual Boxのバージョンと合っていないと共有フォルダー機能そのものが使えない場合が多いです。

    ■ 手で書く
    これは絶対に避けたいところですが、Virtual Boxの仮想マシンのディスプレイで、公開鍵を手打ちで入れる方法です。
    vi ~/.ssh/authorized_keys
    して書くのですが、一文字も間違えられないので、あまりおすすめできません。
    クリップボードの共有もゲストOSでGTKが使えないと使えないぽいので。

    キャンセル

  • 2020/02/06 21:49

    ご返信ありがとうございます!
    ■ 普通にsshしてみる
    接続できませんでした。
    ■ ファイル共有を強引にして持ち込む
    まず、VirtualBoxのGUIから起動してディスプレイの"表示"をすると、「FATAL:could not read from the boot medium!
    System halted.」と表示されてコマンドを打てる状態ではありませんでした。
    この問題を解決しようとしました。
    http://free-money.hatenablog.com/entry/2017/12/10/024517
    今回の質問以前に、ストレージの「ディスクメージファイルを開けませんでした」というエラーで vagrant ssh ができず、解決しようとしてストレージの仮想光学ディスクのファイルを削除しました。
    この様に問題を雑に回避してしまっていました。
    問題のファイルを修復しようとしましたが、今は早く環境を再構築することの方が重要だったので諦めました。
    仮想マシンに関する頂いたご指摘から新しく理解できたことがあり、今後のためになりました。
    丁寧に教えてくださり本当にありがとうございました!

    キャンセル

  • 2020/02/07 09:47

    それはそもそも起動してねぇじゃーん・・・

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る