vagrantの起動時SSHエラー

vagrantの起動時SSHエラー
         

この記事は1年以上前に更新されたものです。内容が古い可能性がありますのでご注意ください。

環境

  • Windows 10
  • Vagrant 1.8.5
  • VirtualBox 5.1.4

起動時に以下のエラーが毎回出る

=> 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
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

※VMの起動自体はしているため、SSHクライアントからパスワード認証で接続は可能

(取りあえず)対応策

1.公開鍵を作り直す

vagrantの秘密鍵を確認

以下のコマンドで秘密鍵の場所を確認

> vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/centos/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

秘密鍵から公開鍵を作成

ssh-keygenコマンドで再作成します。
windows環境で実行するため、Git Bashを利用。

$ ssh-keygen -yf private_key > authorized_keys

作成した公開鍵をvagrantへコピー

~/.ssh以下に存在するauthorized_keysを上記で作成した公開鍵と置き換える。
(念のためバックアップをオススメします)

2.パーミッションの確認

パーミッション設定が正しくないと接続できません。

~/.sshはパーミッション700、公開鍵は600に設定します。

[vagrant@localhost ~]$ ls -la
drwx------. 2 vagrant root      54 Aug 27 14:02 .ssh

[vagrant@localhost .ssh]$ ls -la
-rw-------. 1 vagrant vagrant  389 Aug 26 16:11 authorized_keys

設定が正しくない場合、以下のように設定

$ chmod 600 authorized_keys

まとめ

  1. 秘密鍵の再作成
  2. パーミッションの確認

秘密鍵は正しい場合があるので、パーミッション設定だけでエラーが解消される場合もあります。