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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

SSH

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

コマンドプロンプト

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

VirtualBox

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

Vagrant

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

Q&A

解決済

1回答

3797閲覧

vagrantとcentosのkeyを合わせたい

ruuusaamarki

総合スコア468

CentOS

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

SSH

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

コマンドプロンプト

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

VirtualBox

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

Vagrant

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

0グッド

0クリップ

投稿2016/11/02 02:28

編集2016/11/02 02:30

###前提・実現したいこと
ローカル開発環境(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環境の情報が多く解決に至っておりません。
皆様の知恵をお借りできましたら幸いです。
よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

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 03:06

編集2016/11/02 13:20
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuusaamarki

2016/11/02 04: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のもの) にペーストしてみましたが結果は同じでした。 こちらの書き方が悪くお手間取らせてしまい大変恐縮です。 間違っている部分などお心あたりがありましたらご指摘いただければ嬉しいです。
hiim

2016/11/02 04:41 編集

> usermod -dコマンドにておっしゃる通り > vagrantユーザーのものを変更したところ今回のエラーが発生するようになりました。 という事は、vagrantユーザーのホームディレクトリを変更したという事でしょうか? であれば /home/vagrant/.ssh/authorized_keys ではなく (変更した新しいvagrantユーザーのホームディレクトリ)/.ssh/authorized_keys にコピーしてみては?あとはパーミッション注意してください
ruuusaamarki

2016/11/02 10: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...
hiim

2016/11/02 13: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接続可能なところまで試しにやってみましたので、追記します。 また確実につながるであろう秘密鍵・公開鍵のペアも追記に載せておきますので使ってください。 ただし、このペアは開発機にはいいですが、実際の運用機には絶対使わないでください。
ruuusaamarki

2016/11/07 02:02

確認が遅れ大変失礼いたしました。 ご提示いただいたものを参考にさせていただきまして 無事鍵の設定ができました。 またhiimさんのほうでも環境を作成し検証までしていただいたとのことで 大変お手間をおかけいたしました。 おかげさまで問題を解決することができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問