好きこそものの上手なれ

vagrantの起動時SSHワーニング

環境

  • Windows 10
  • Vagrant 1.8.5
  • VirtualBox 5.1.4


起動時に以下のWarningが毎回出る

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. パーミッションの確認


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