$vagrant up
した際に以下のようにssh接続が失敗してしまう現象を解決する方法。
default: SSH auth method: private key
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
#原因
自身のローカル上にある秘密鍵と設定したいサーバー上にある公開鍵が一致しなかったため、接続に失敗してしまうことが原因である。
秘密鍵、公開鍵の仕組みが分からない方は、こちら
特に今回は、自分自身で公開鍵や秘密鍵を設定したところ、設定したいサーバー上に公開鍵を書き込み忘れていたため、その設定方法を載せようと思う。
#解決方法
①もし公開鍵、秘密鍵を作成していない場合は作成。
②作成した公開鍵情報をコピー。
$ cat id_rsa.pub
もしくは
$ vi id_rsa/pub
で中身が見れる。
ssh-rsaの最初から最後まですべてをコピー。
③設定したいサーバー上にあるauthorized_key(人によってはauthorized_keys)に書き込みを行う。なければ作成。
まずは設定したいサーバーに接続。windowsの場合はPowerShell、Macの場合はターミナルで実行。
$ ssh アカウント名
ログイン完了したら、.sshディレクトリへ移動
$ cd /home/ユーザーアカウント/.ssh
先ほどコピーした公開鍵をvimを使ってauthorized_key(もしくはauthorized_keys)に追加。なければ作成。
$ vi /home/ユーザーアカウント/.ssh/authorized_key(もしくはauthorized_keys)
すでにある場合はそのキーの最後に追加するのでもよい。
最後に秘密鍵のパーミッションを変更
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_key(もしくはauthorized_keys)
以上でsshログイン可能になる。
再起動して出来ているか、みてみよう。
$ vagrant reload
#参考文献
・絵で見てわかるWebアプリ開発の仕組み