Vagrant VMのSSHの基本


23

次の要件を持つ浮浪者マシン(Ubuntu 12.04)を構築しています。

  • Vagrantを介したsudo特権を持つユーザーへのSSHアクセス。

ssh-keygenホストで公開キーと秘密キーを(経由で)生成authorized_keysし、ゲスト上のファイルに公開キーを移動しました。そして、パスワードなしのSSHを試しました。

vagrant sshパスワードが有効なSSHキーを使用して入力すると、いくつかのことが起こります。

  • ゲストマシンにSSHで接続するには、ホストマシンでキーフレーズを入力する必要があります。
  • 正しいキーフレーズを入力するたびに受け入れられません。

その結果、次のエラーメッセージが表示されます。

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

次に、パスワードなしのsshを試しました。

vagrant ssh
vagrant@127.0.0.1's password: 

迷惑なユーザーを設定することはありません!user@hostname設定したとおりのはずで、VirtualBoxでVMを起動すると動作を確認できます。

Vagrantで適切に動作するようにプライベートsshキーを取得するにはどうすればよいですか?ホストで何をすべきか、ゲストで何をすべきか?

更新

VirtualBoxでは、VMはライブですが、次の問題に加えて、Vagrant Consoleから次のコマンドを実行できませんvagrant ssh

vagrant up vagrant halt

動作する唯一のvagrantコマンドはvagrant suspendです。使用するときは、実際にマシンを停止できvagrant haltます。出力は次のとおりです。

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

回答:


21

私はこのスレッドに来る人のためにこのソリューションを追加しています:

まず、ホストマシンでこのファイルを開きます。

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

config.ssh.private_key_path秘密鍵ファイルに設定されていることを確認してください。それを更新しない場合

デフォルトのpwdを使用したssh to vagrantボックス

$ vagrant ssh (default pwd = ‘vagrant’]

ボックスに入ったら:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

このファイルに公開鍵を追加してファイルを保存し、ボックスを閉じます

vagrant@lucid64:~$ exit

ローカルマシンに戻る

$ vagrant halt
$ vagrant up

これは私のために働いた


これに感謝しますvagrant-pub / privキーペアとは異なるユーザーとしてsshを使用してボックスにsshできるとしたらどうでしょうか?さらに、Vagrantfileから目的のプライベートsshキーへのパスを次のように設定できますか?
ロードー

2
フォルダー 'include'が見つかりません。フォルダー0、virtualbox、4つのファイル(box.ovf、box-disk1.vmdk、metadata.json、Vagranfile)を見つけました。次に何をすべきか考えていますか?
ダライアスV

3

SSHキーの問題によるものではありませんが、私は同じ問題を抱えていました。マシンを起動すると、Virtualboxが機能し、ゲストを正常に起動しました。私は自分でマシンにSSHで接続することができvagrant ssh、パスワードを要求されましたが機能しました。ログインして、ゲストの/var/log/auth.logに以下を見つけました。

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

/ home / vagrantのパーミッションを調べに行きました:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

良くない、私がやっていた他の何かが/ home / vagrant dirのパーミッションをうっかり変更してしまった。以下により問題が修正されました。

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

その後、マシンをシャットダウンし、再び起動して、Vagrantは問題なく動作しました。:-)


良いヒント。私もやらなければなりませんchmod -R 755 /home/vagrant/.ssh
でした

2

浮浪者の安全でない公開キー.ssh/authorized_keysゲストボックスのファイルにコピーしてみてください。

これでsshの問題が解決することを願っています。

安全にしたい場合は、独自の.ssh / id_rsa.pubを前述のファイルにコピーすることにより、安全にできます。そして、設定

config.ssh.private_key_path = '〜/ .ssh / id_rsa'

Vagrantfileで。


2

この問題を抱えている人のために。修正するのに年齢がかかりました。(まだ修正は簡単です!!)そのため、Vagrantのドキュメントによると、「vagrant」ユーザーのデフォルトのパスワードは、単一引用符なしで「vagrant」です。あなたは彼らの公式ウェブサイトhttp://docs.vagrantup.com/v2/boxes/base.htmlで同じの詳細を読むことができます


2

同様の問題がありました。最終的に私はそれを解決しました:

  • VagrantとVirtualboxの両方が最新であることを確認する
  • vagrant-vbguestプラグインをインストールして、VirtualBox Guest Additionsが最新であることを確認します。GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    

0

Mac OS High Sierraの問題を解決する手順に従います。

  1. vagrant 5.Xバージョンを使用しています
  2. まず仮想ボックスをダウンロードし、インストールしないでください。
  3. [システム設定]-> [プライバシー]に移動し、[アメリカでダウンロードを許可する]をクリックします。
  4. 上記の変更をロックして、仮想ボックスをインストールします。
  5. 仮想ボックスのインストール成功完了メッセージが表示されます。
  6. ここで、端末タイプのvagrant up --provisionに移動します
  7. スクリプトがあればスクリプトの実行を開始し、仮想ボックスをダウンロードします。8.「完了」というメッセージが表示されます

  8. 仮想ボックスが正しくインストールされていることを確認してから、vagrantコマンドのみを実行してください。pkgに付属のアンインストールスクリプトを実行してアンインストール仮想ボックスの問題に直面した場合は、再度インストールしてみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.