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

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

ただいまの
回答率

91.99%

  • CentOS

    1525questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Vagrant

    639questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • VirtualBox

    342questions

    VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

  • SSH

    273questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

  • コマンドプロンプト

    155questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

vagrantとcentosのkeyを合わせたい

解決済

回答 1

投稿 2016/11/02 11:28 ・編集 2016/11/02 11:30

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

ruuusaamarki

score 174

前提・実現したいこと

ローカル開発環境(windows10上)、virtualbox + vagrant + centosにて
vagrant up時に下記エラーが出るようになりました。
vagrant upはコマンドプロンプトで実行し、サーバが立ち上がったら
puttyにて接続しています。

エラーが出るようになったタイミングは
centosのユーザーのホームディレクトリを
変更した後に出るようになりました。

default: Warning: Authentication failure. Retrying...
と何回か出た後time outになるのですが
vagrant statusだとrunnningになります。
puttyやwinspcにての接続も可能です。

発生している問題・エラーメッセージ

default: Warning: Authentication failure. Retrying...

該当のソースコード

windows10のコマンドプロンプト上で

vagrant ssh-config

IdentityFile C:/windows10folder/.vagrant/machines/default/virtualbox/private_key

ssh-keygen -yf C:/windows10folder/.vagrant/machines/default/virtualbox/private_key > public_key

'ssh-keygen' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

試したこと

◆その1
ホームディレクトリのパーミッションが777だと
エラーになるという情報を見つけ755に変更してみました。

◆その2
https://github.com/NetCommons3/NetCommons3/wiki/vagrant-up-%E3%81%A7Authentication-failure.-Retrying...
↑こちらのページを参考に
/home/vagrant/.ssh/authorized_keys

https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
に変更。(バックアップ取るのを忘れてしまいました(泣))

keyがあっていないという理屈はなんとなくわかるのですが
mac環境の情報が多く解決に至っておりません。
皆様の知恵をお借りできましたら幸いです。
よろしくお願いいたします。

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

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

    クリップした質問はマイページの「クリップ」タブからいつでも見ることができます。

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

0

mac環境の情報が多く解決に至っておりません。 

当方もmacのため参考にならなければすいません。

また実際に行った事はない作業なのでこれで解決するか不明ですがなにか参考になれば

現在たとえばputtyがとあるユーザー(仮にhogeというユーザーとします)で接続可能状態にあるという事は
centos側の/home/hoge/.ssh/の中にauthorized_keys
があり、windows側のputtyが読み込んでいるprivateキーとペアとしてOKの状態という事だと思います。

ですのでcentosが起動した状態でputtyで接続が可能、

しかしvagrant はvagrantの機能に
vagrant ssh
などがあるがその秘密鍵とサーバー側のキーのペアが合わなくなっているのかな?と想像します。

centosのユーザーのホームディレクトリを 
変更した後に出るようになりました。

どう変更されたかはわかりませんが、おそらくvagrantの中にある
/home/vagrant
を何か変更されたのだと思うのですか?どうでしょうか?(デフォルトではvagrantユーザーが存在すると思います)

puttyで使われているキーと合わせたいとの事ですので、

Vagrantfileに下記のように追記して
config.ssh.private_key_path = "~/.ssh/秘密鍵ファイル"

のような感じで秘密鍵を指定して接続を試みてみてはいかがでしょうか?

ただし、puttyが現在つかっているkeyはputtyのために残しておき、新たにputtyの鍵を変換する必要はあると思います。

下記参照
https://bacchi.me/linux/putty-key/

サーバー側は/home/vagrant/.sshにputtyで接続しているユーザー/home/hoge/.ssh/の中のauthorized_keysをコピーしておく、

もしくは
さっきの
config.ssh.private_key_path

のあたりにconfig.ssh.username とかで接続ユーザーも変えてしまうとかもありかもしれません。

追記

Vagrantfileに書き追加してください

config.ssh.private_key_path = "/秘密鍵を保存するパス/vagrant_private_key"

vagrant up

を実行、さきほどと同様のエラーがでるはずなので、auth エラーがでるのを確認してからctrl + cなどで抜ける。
この時点でsshはつながっていないが、ゲストOSは起動した状態

次に

vagrant ssh-config
を実行し、IdentityFileのパスが先ほどconfig.ssh.private_key_pathと間違いがないか確認

/秘密鍵を保存するパス/にvagrant_private_keyファイルを作成し、中身を下記にする

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArXnReGY6IReBi9ZVrwQm/IZl3oNub0DIurvQIT9Ukw6V1lkH
lQn8LahLsozrzLItNKJjFv7luQnrRebT0asNm/fGOpvKFTMHLJ0QDRicf2TAtzBx
cZZA1usy1CX8oHXKCeVXoVfdJYCPZPKWV3fRLySnQsl998GCrwViXklcyyQeOxU8
N1yoGD4jpK24juy7VPd0LsXgksJdU3cB+l85J6NNHtArH74TUrGCrsCYl/33gvRE
pZfMmf1AMsCmC6DX2e7hVj7B3xG1+7tZLhcQswSGipmwjcOVqds1FcchNcgn3IYi
3YkZbKbnBYBAu0UwyesvGCTTIEf2unuFo02E1QIBIwKCAQEAgN4mk/QrLoZ9fdJr
iVOKrPYfyd36RAQ9V4Q0NfSH+Da4c1gUQtQ3rONrbrHTvKGd7JXjNado0pmndcFq
JrmVFMawg08oZ4T+A+JjsfUGioVb9cw3A+v1pvfcnZiPx6f1K+wyd9rey2bQ6+do
Xju/9yKK4Sf3LRNoZMIr0QNMPyDr7Y4jXHomwEQWlhJZF5mf8ZGxZ+m8qQMUVYZd
EJ5lMziy7EEwLTS/B5ORND0qvuUBsJJD0hdkzkRuH1e/4ZQPEHbhBR+HYAjbeMum
MaAZPYVRejKZpBDGgWkL0sIbzbOAK261XItdX9OZA5mRJ434O+S4MOUpKFh+5qlG
KWqsCwKBgQDXCCwPtvo/SPrRh1sd2N5lpOPcxl922djFM+5IfxgZlLGRB7LTa+Vp
Xtz+QxNBAmdeB2Jt+8PjTkhHnelyxXvbIaF0o9ZATjiXpNnfty3roZ6FZIFAE9Nx
r3v3b+ajwWblc+q36v7cfboKW1rrYfDW+goUcZQzdQHRSHrZQnojJQKBgQDOhtE3
+gy+fayWK+six4R0iG0BNSHrwbQ308oBH/u+ukzLO4qDKDkLQj8ZkanFbTrv0szx
hSqS05PuL5JOgsn8IiOMjfkj8ghFqmzeqkLbtLxiPKzwa9mO6bRLRT2my8g9QdUo
Cac/PLJ6/epNBotkRC02ZL6Zfs8EdpL1UHUD8QKBgG6WfQ9lasF1/VXQlUKMyiWl
QfyDRwnsYNpyeouvE7ViafLQwl4aO3gE5q6mJyi/aFw+T+DKn0GzOx2EaW45rWlh
wL+kt1RFfDC7LjiKF53A1S6ot4AKMjp3gZUyPBmz68Z2IPDfQT4yB+gRubrh6ZMh
gYbbU4gti+f5Y8Aw0RljAoGAaja0vbPMCjIA/MYhJ9RSv5aedaZL9ZbRtk+pt2+I
yH0RjRdOjJhX2eeOKmgrbNkW/v6yitbFcBUKP/s1TPLORyd//yRxgDNUth0iDB0M
cP3dOdYPzBo1X3DgYTmNa7lCaKWDkO8Fjjx5DA2OcMGJhAXOG/lMFG0aAkucCSIQ
SysCgYEAvpEbOZ8kQmKKvUxoI3C3yYAhGNrQlYk9vllH3oIHaxog8DDZRdQ9A9Ez
Msb9l3kxE/1Lg8frQVEnKn0Rzo5PPZqhGLAbeAA295wN5fVKHqJsyHxBjnXvKWJk
c3hXXyUp8WeRwOYPXXES56OvZSF+CceDOPM2xOJDn/WOjSjfIkg=
-----END RSA PRIVATE KEY-----

これでホスト(windows側はOK)

次にサーバー側

puttyでログイン

su vagrantでvagrantユーザーとしてコマンド実行

echo $HOME

これで/var/www/html
が表示されるか確認

ここまでOKならrootユーザーにsu -

cd /var/www/
chown -R vagrant.vagrant html

cd html
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys
cp authorized_keys authorized_keysbak (backupとっておく)
vi authorized_keys

authorized_keysの中身を

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXnReGY6IReBi9ZVrwQm/IZl3oNub0DIurvQIT9Ukw6V1lkHlQn8LahLsozrzLItNKJjFv7luQnrRebT0asNm/fGOpvKFTMHLJ0QDRicf2TAtzBxcZZA1usy1CX8oHXKCeVXoVfdJYCPZPKWV3fRLySnQsl998GCrwViXklcyyQeOxU8N1yoGD4jpK24juy7VPd0LsXgksJdU3cB+l85J6NNHtArH74TUrGCrsCYl/33gvREpZfMmf1AMsCmC6DX2e7hVj7B3xG1+7tZLhcQswSGipmwjcOVqds1FcchNcgn3IYi3YkZbKbnBYBAu0UwyesvGCTTIEf2unuFo02E1Q==


にする
ゲストOSから抜ける

windowsに戻って

vagrant halt
vagrant up


これでつながるはずと思うのですが、どうでしょうか?

投稿 2016/11/02 12:06

編集 2016/11/02 22:20

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2016/11/02 13:07

    早速の書き込みありがとうございます。

    申し訳ありません。当方の情報が不足しておりました。
    puttyやwinscpはパスワードにてログインをしている状態でした。

    ホームディレクトリは
    usermod -dコマンドにておっしゃる通り
    vagrantユーザーのものを変更したところ今回のエラーが発生するようになりました。

    ご提示いただいた情報で
    puttygenの存在を思い出し、

    C:/windows10folder/.vagrant/machines/default/virtualbox/private_key
    をputtygenで読み込み
    OpenSSHのautyorized_keysファイルにペーストするための公開鍵
    の値を
    /home/vagrant/.ssh/authorized_keys
    (↑puttyでパスワードログインした後のcentosのもの)
    にペーストしてみましたが結果は同じでした。

    こちらの書き方が悪くお手間取らせてしまい大変恐縮です。
    間違っている部分などお心あたりがありましたらご指摘いただければ嬉しいです。

    キャンセル

  • 2016/11/02 13:41 編集

    > usermod -dコマンドにておっしゃる通り
    > vagrantユーザーのものを変更したところ今回のエラーが発生するようになりました。

    という事は、vagrantユーザーのホームディレクトリを変更したという事でしょうか?

    であれば
    /home/vagrant/.ssh/authorized_keys

    ではなく

    (変更した新しいvagrantユーザーのホームディレクトリ)/.ssh/authorized_keys
    にコピーしてみては?あとはパーミッション注意してください

    キャンセル

  • 2016/11/02 19:35

    コメントありがとうございます!

    >という事は、vagrantユーザーのホームディレクトリを変更したという事でしょうか?
    はい、vagrantユーザーのホームディレクトリを/var/www/htmlに変更しました。

    早速
    /var/www/html/.ssh/authorized_keys
    にコピーして
    /home/vagrant/.ssh/authorized_keys
    を削除

    してみましたが同じエラーが出てしまいます。

    また以下も試してみました。
    Vagrantfileに以下を追記してみました。
    config.ssh.private_key_path = "C:/windows10folder/.vagrant/machines/default/virtualbox/private_key"

    こちらでも状況は変わりませんでした。
    自分としてはvagrantが使うkeyとcentosが使うkeyが合わないと
    勝手に推測してしまったのですが
    もしかするとvagrantとvirtualboxのkeyがあわないという事なのでしょうか。

    ちなみに改めてエラーメッセージを見ると
    vagrant upの以下のタイミングでエラーが発生します。

    vagrant up
    Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Checking if box 'bento/centos-6.7' is up to date...
    ==> default: A newer version of the box 'bento/centos-6.7' is available! You currently
    ==> default: have version '2.2.3'. The latest is version '2.2.7'. Run
    ==> default: `vagrant box update` to update.
    ==> 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
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

    キャンセル

  • 2016/11/02 22:17

    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Authentication failure. Retrying...

    はやはり
    ホストOS側の秘密鍵とゲストの公開鍵のペアがあってないからだと思います。

    とりあえず先ほど、新しく、vagrantでゲストOS作成、vagrantユーザーのホームを変更し、vagrant up でsshが繋がらない、上記と同様のエラーがでるようにしてからあらたに、keyのペアを生成そゲスト・ホストに配置しssh接続可能なところまで試しにやってみましたので、追記します。

    また確実につながるであろう秘密鍵・公開鍵のペアも追記に載せておきますので使ってください。
    ただし、このペアは開発機にはいいですが、実際の運用機には絶対使わないでください。

    キャンセル

  • 2016/11/07 11:02

    確認が遅れ大変失礼いたしました。

    ご提示いただいたものを参考にさせていただきまして
    無事鍵の設定ができました。

    またhiimさんのほうでも環境を作成し検証までしていただいたとのことで
    大変お手間をおかけいたしました。
    おかげさまで問題を解決することができました。
    ありがとうございました。

    キャンセル

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

ただいまの回答率

91.99%

関連した質問

  • 解決済

    vagrantを使ってCentOSをインストールしたいのですが・・・

    Vagrantを使って、CentOSをインストールしようとしてるのですが、 うまくいきません。 解決策をご教示いただけないでしょうか。 <環境> Windows10 p

  • 解決済

    ・Vagrant up でタイムアウトする

    Vagrant up でタイムアウトする ドットインストールを見ながらローカル開発環境を進めていたのですが、 vagrant suspendで保存して次の日に、 vagran

  • 解決済

    ansible環境変数参照時にエラー

    前提・実現したいこと Ansibleで環境変数を参照してコマンドを実行したいのですが、 group_vars/all で宣言している変数参照時にエラーが出てしまいます。 書式な

  • 受付中

    vagrant+virtualboxでputtyから接続できない

    vagrant+virtualboxで仮想環境を作成して、puttyで接続しようとしていますが接続できないです。 (以前はputtyから接続できていたのですが、ある時いろいろとC

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

  • CentOS

    1525questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Vagrant

    639questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • VirtualBox

    342questions

    VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

  • SSH

    273questions

    SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

  • コマンドプロンプト

    155questions

    コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

閲覧数の多いCentOSの質問