Vagrant ssh認証失敗


147

ssh認証の問題:

==> 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: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (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: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

私のことができCtrl+Cて、認証ループの、その後成功し、手動でsshを。

ゲストボックスで次の手順を実行しました。

  • に対して有効Remote LoginですAll Users

  • 権限を~/.ssh持つディレクトリを作成しました0700

  • 権限を~/.ssh/authorized_keys持つファイルを作成しました0600

  • この公開鍵 をに貼り付けました~/.ssh/authorized_keys

また、Vagrantfileで次の行を使用して、パブリック(ブリッジ)ネットワークの代わりにプライベート(ホストのみ)ネットワークを使用してみました。

config.vm.network "private_network", ip: "172.16.177.7"

同じ出力(を除くAdapter 2: hostonly)が表示されますが、手動でsshすることはできません。

私も試しましたconfig.vm.network "private_network", ip: "10.0.0.100"

私もconfig.ssh.passwordVagrantfileで設定してみました。これは出力しますSSH auth method: passwordが、それでも認証しません。

また、ボックスを再構築し、上記のすべてを再確認しました。

それは次のようになります他の人がこの構成で成功を収めているので、私が間違ってやっている何かがなければなりません。

このスレッド見つけてGUIを有効にしましたが、役に立ちません。

回答:


1

最初のネットワークインターフェイスがNATであることを確認します。他の2番目のネットワークインターフェイスは、ボックスを構築するときに必要なものにすることができます。Googleスレッドで説明されているように、Vagrantユーザーを忘れないでください。

幸運を。


171

一般的な情報:デフォルトではssh-connectを使用するだけでよい

ユーザー:vagrantパスワード:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

まず、試してください:浮浪者は何を見るためにinsecure_private_keyあなたのマシンの設定であります

$ vagrant ssh-config

例:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

次に、 ファイルinsecure_private_keyの内容を個人システムの秘密鍵の内容で変更します。

または使用: Vagrantfileに追加:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path ローカルの秘密鍵です
  2. 秘密鍵は、ローカルのssh-agentで使用できる必要があります。で確認できssh-add -Lます。リストにない場合は、ssh-add ~/.ssh/id_rsa
  3. ~/.ssh/authorized_keysVagrant VMに公開鍵を追加することを忘れないでください。コピーアンドペーストするか、ssh-copy-id(user:rootpassword:vagrantport:2222)のようなツールを使用してそれを行うことができますssh-copy-id '-p 2222 root@127.0.0.1'

それでも動作しない場合は、これを試してください。

  1. insecure_private_keyからファイルを削除c:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. 実行vagrant up(vagrantは新しいinsecure_private_keyファイルを生成します)

他の場合では、forward_agent Vagrantfile次のように設定するだけで役立ちます

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

有用:

gitの設定はgit-scm.comで行うことができます

このプログラムをセットアップして個人システムの秘密鍵を作成すると、プロファイルパスに配置されます。c:\users\USERNAME\.ssh\id_rsa.pub

PS:最後に-Windows 10Ubuntuを確認することをお勧めします


4
私の場合config.ssh.private_key_path = "~/.ssh/id_rsa"、プロビジョニングを機能させるためにこの行を削除する必要があったため問題でした
ホルムス2014

これはすべてうまくいきましたが、既知のホストから自分のエントリも削除する必要がありました。場所を移動し、ログイン時に、私は問題を抱えていた。
ポンプハウス

@shilovk +1ありがとう、ありがとう、ありがとうございました。「第2に、する」がトリックを行いました。もう一度、本当にありがとうございました。
whitesiroi 2016

これは私を正しい方向に向けました、私の場合、私がしなければならなかったのは、.vagrant / machines / default / virtualbox / private_keyファイルを削除することだけで、vagrant upを実行した後、ファイルを正しいファイルに置き換えました-バックアップをバックアップします
念のために

最初の最も重要なステップは、BIOS設定を確認し、仮想化が有効になっていることを確認することです。
Bahman.A 2018年

83

上記のどれも私にとってはうまくいきませんでした。どういうわけか、ボックスはvagrant user authorised_keysファイルに追加された間違った公開鍵を持っていました。

引き続きvagrantパスワード(パスワードはvagrant)を使用してボックスでsshできる場合、つまり

ssh vagrant@localhost -p 2222

次のコマンドを使用して、公開鍵コンテンツをhttps://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pubからauthorised_keysファイルにコピーします

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

完了したら、VMを終了し、vagrant sshを再試行します。これで動作するはずです。


4
vagrant reloadauthorized_keysファイルを更新した後に実行します。Vagrantは安全でないキーを自動的に検出し、それを再生成します。後で動作するはずです。
ProfileTwist 2016年

47

vagrant 1.8.5でこの問題が発生した場合は、githubでこのスレッドを確認してください。

https://github.com/mitchellh/vagrant/issues/7610

それは基本的に許可の問題によって引き起こされます、回避策はただです

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

その後

vagrant reload 

参考:この問題はCentOSにのみ影響し、Ubuntuは正常に動作します。


1つのVagrantファイルに対して5つのマシンがあるとします。再実行するたびに、マシンごとに実行する必要があります。Centosを使用した特定のVagrantセットアップでこれを永久に修正しますか?
Pol

vagrantをバージョン1.8.6にアップグレードするだけで、バグが存在する1.8.5を使用できます
Pol

42

ゲストマシン/ VMで次のコマンドを実行します。

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

次に、放浪停止します。これにより、秘密鍵が削除され、再生成されます。

(これらの手順は、ホームフォルダーの下に〜/ .ssh /および〜/ .ssh / authorized_keysディレクトリがすでに作成されているか、すでに存在していることを前提としています。)


26

私の経験では、これは新しい浮浪機で驚くほど頻繁に発生する問題でした。構成自体を変更する代わりに、これを解決する最も簡単な方法は、必要なSSH鍵をクライアントで手動で作成し、次にホストで秘密鍵を使用することです。

  1. vagrant machineにログインしvagrant sshますvagrant。デフォルトのパスワードを使用します。
  2. たとえば、sshキーを作成しますssh-keygen -t rsa -b 4096 -C "vagrant"GitHubの関連ガイドでアドバイスされています)。
  3. 古いファイルを上書きして、公開鍵ファイルの名前を変更します(デフォルトではid_rsa.pub)mv .ssh/id_rsa.pub .ssh/authorized_keys
  4. 必要に応じて、sshサービスをリロードしますsudo service ssh reload
  5. プライベートキーファイル(デフォルトではid_rsa)をホストマシンにコピーします。たとえば、猫とクリップボードcat .ssh/id_rsa、ペイント、コピーを組み合わせて使用​​します(より良い方法が存在する必要があります。発明してください)。
  6. vagrant machineからログアウトしますlogout
  7. vagrant ssh-configvagrant によって使用されている現在の秘密鍵を、その構成を調べて見つけます(たとえば、ÌdentityFile "/[...]/private_key"を探します)。
  8. たとえば、現在の秘密鍵をホストマシンで作成した秘密鍵に置き換え、nano /[...]/private_key他のすべてが失敗した場合はクリップボードから貼り付けます。(、しかし、あなたのPRIVATE_KEYは、プロジェクト固有のものではないが、複数の浮浪者のマシンで共有すれば、あなたはより良い他の完全に作業機を壊さないためにパスを自分で設定すること!パスを変更すると、行を追加するなど、単純なようであるconfig.ssh.private_key_path = "path/to/private_key"Vagrantfileに。)さらに、PuPHPetで生成されたマシンを使用している場合は、秘密鍵をファイルに保存できpuphpet/files/dot/ssh/id_rsa、Vagrantfileのssh設定に自動的に追加されます。
  9. 設定をテストします。これで機能するvagrant sshはずです。

ケースでなければなりませんが、自分自身、祝福logout、実行vagrant provision手元に意味のあるタスクを持つ上で、必要な場合やキャリーを。

それでも問題が解決しない場合は、デバッグを容易にするためにsshコマンドに詳細フラグを追加すると便利です。二重ダッシュの後に、それ(または、そのほかのオプション)を渡すことができます。たとえば、と入力しますvagrant ssh -- -v。必要な数のvを自由に追加してください。それぞれがより多くの情報を提供します。


この答えは私を助けました。ちょうど私の経験を共有するために:どういうわけか(おそらくCapistranoのインストール中に、それは確認されていません)私のauthorized_keyファイルがゲストVMで削除されました。これらの手順を使用してそれを再作成することはうまくいきました、そして今私はパスワードプロンプトなしでsshで入ることができます。ありがとう。
マーティンジョイナー2016

ホストマシンから両方のキー(パブリック/プライベート)を削除した後、このプロセスでやり直して解決することができました
vrwired

Gitを使用すると、そのファイルコンテンツの転送が速くなります。
lloan

1
これは、私が試した後、うまくいきました。失敗しました。ありがとうございました。
ニコラ2018年

これでうまくいきました。私が異なる唯一のことは、私にとってはうまくいかなかったのでssh vagrant@10.0.0.0 -p 22 (password: vagrant)、VMへのログインに使用することvagrant sshでした。10.0.0.0は、自分で設定したプライベートIPアドレスvagrantfileです。
turrican_34

11

これは、SSHのデフォルトでVMにrootユーザーを強制的に使用させようとしている場合にも発生します。

たとえば、Vagrantfileにそのような設定があると、このエラーが発生する可能性があります。

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

解決策:それらの行をコメント化して、再試行してください!


2
私にとっては、config.ssh.username = "
vagrant

8

問題プロビジョニングしたボックスで、ssh認証エラーが発生しました。オリジナルは大丈夫でした。

私にとっての問題は、に秘密鍵がないということでした.vagrant/machines/default/virtualbox/private_key。元のボックスとViolaの同じ場所から秘密鍵をコピーしました。


私は、良い開発者として、.vagrantファイルをgitにチェックインしていることを付け加えておきますgit checkout
Ian Vaughan

8

ここに記載されている方法のいずれかで成功しなかったWin 8.2のキーの混乱を回避する方法を見つけました。VirtualBox、Vagrant、およびボックスのまったく同じ組み合わせが問題なくWin 7 Ultimateで実行されるのは興味深いかもしれません。

Vagrantfileに次のコマンドを追加して、パスワード認証に切り替えました。

config.ssh.password = "vagrant"
config.ssh.insert_key = false

私がすでに行ったので、これが唯一必要な変更であるかどうかはわかりません。

  1. 新しいRSAキーペアを生成し、それに応じてauthorized_keysファイルを変更しました(すべて仮想マシン内、上記および他の提案を参照)

  2. 秘密鍵をVagrantfileと同じディレクトリにコピーして追加しました

     config.ssh.private_key_path = "./id_rsa"
    

しかし、私はこれらの変化は無関係であったと信じています。私はたくさんの時間を費やして費やしたので、明らかな理由で作業構成を変更しませんでした:)


5

スタックしてタイムアウトになるため、浮浪者を実行できませんか?

私は最近「ラップトップに水が溜まる」事件があり、新しいMACアドレスに移行する必要がありました(ちなみにMAC上で)。

私はすべてのプロジェクトを無事に立ち上げ、その横でvagrantを使用していました。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> 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: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> 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: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

認証できず、何度も再試行し、最終的にはあきらめました。

**これは私が3つのステップでそれを形に戻す方法です:**

1-vagrantが使用するIdentityFileを検索します:$ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2-IdentityFileの公開鍵を確認します。 $ ユーザーにssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key 置き換え'<user-name>'ます。 次のようになります。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3-パスワード「vagrant」を使用してvagrantマシンにログインします:$ ssh -p 2222 -o UserKnownHostsFile=/dev/null vagrant@127.0.0.1

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
vagrant@127.0.0.1's password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4-公開鍵をauthorized_keysファイルに追加します。ドルecho "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5-終了(crtl + d)してvagrantコンテナを停止し、再び起動します。$ vagrant halt $vagrant up

うまくいけば、今あなたは腕を宙に浮かせているでしょう...

Ned Batcheldersの記事から、ちょっとした修正を加えてこれを得ました-Ned you are a champ !!


あなたは天才です、またはNed Batcheldersはそうです。いずれにせよ、それは私の問題を修正しました!
Adsy2010

4

私にとって、これはvagrant home directortの.sshフォルダー(つまり、「〜vagrant / .ssh」)の権限を変更することで解決しました。アプリケーションにsshキーを設定するときに、権限をめちゃくちゃにしたと思います。

「authorized_keys」ファイルは、「vagrant」ユーザーに対してのみ「rw」でなければならないため、「chmod 600 authorized_keys」です。ディレクトリ自体とその親についても同じことが言えます。

そう:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

それは私が持っていた後にのみだったすべてのこれらの権限は再び仕事を始めている放浪のsshを回復しました。

これはsshのセキュリティと関係があると思います。現在のユーザー以外の方法で証明書にアクセスできる場合、証明書の認識を拒否するため、迷惑なログインの試みは拒否されます。


変更できない場合があります。sudochmod 600 authorized_keysを実行するだけですが、変更はありません。これはWindowsでも共有されることと関係があると思います。
Darius.V、2015年

たとえば、ディレクトリが共有上にある場合、これが発生することがあります/vagrant/...
robert

1
私の回答に加えて、この回答に投票したいと思います。私の別のマシンでは、まさにこの問題でした-/home/vagrant/.sshディレクトリの所有者が間違っています。「root:root」でしたが、「vagrant:vagrant」である必要があります
Michael

4

VagrantFileでデフォルトのSSHセットアップを使用していて、クラッシュが原因でVMボックスを再度関連付けた後にSSH認証エラーが表示され始めた場合は、Vagrantマシンの公開鍵を置き換えてみてください。

Vagrantは、セキュリティ上の理由により、ログアウトするたびに、安全でない秘密キーペアに関連付けられている公開キーを置き換えます。マシンを適切にシャットダウンしなかった場合、公開鍵と秘密鍵のペアが同期しなくなり、SSH認証エラーが発生する可能性があります。

この問題を解決するには、現在の安全でない秘密鍵をロードしてから、公開鍵のペアをVMのauthorized_keysファイルにコピーします。


3

これはリストの最後の答えになるかもしれませんが、これは私にとってはうまくいき、私はこの答えをどこにも見つけませんでした。2日間の調査の結果、私はそれを自分で見つけたので、今まで他に何もうまくいかなかった場合は、これを試すことをお勧めします。

私の場合、問題はVirtualBoxにあります。オプションが無効にされた理由がわかりません。有効にされているはずです。

ここに画像の説明を入力してください

画像を見るとわかるように、VirtualBoxにいくつかのネットワークの問題があり、この問題を解決するために私がしなければならなかったのは、マシンを選択し、設定、ネットワークタブを押して、オプションのケーブル接続を確認することでした。選ばれました。私の場合、このオプションは選択されておらず、このステップで失敗しました:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

最初に、そのポートはすでに使用されていると思いました。その後、Vagrantを再インストールし、他のことも試しましたが、どれもうまくいきませんでした。


3

これは何度か私に起こり、私がそれを解決した方法は次のとおりでした:

  1. Vagrantfileに正しい秘密鍵のパスがあることを確認してください:

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. 実行> Linuxターミナルでvagrant sshコマンド

  3. あなたの迷惑なマシンでに行きます

    cd /home/vagrant/.ssh

また、authorized_keysファイルのsshキーがローカルマシンの〜/ .ssh / id_rsa.pubにあるものと同じかどうかを確認します。そうでない場合は、〜/ .ssh / id_rsa.pubにあるローカルマシン上のvagrant authorized_keys からのものを置き換えます。

  1. 浮浪者をリロード:

    浮浪者リロード

これが他の誰かを助けることを願っています。乾杯!


〜/ .sshフォルダーがない場合はどうすればよいですか?
Ashish Karpe

@AshishKarpeは700のアクセス許可でauthorized_keysファイルを作成し、600のアクセス許可でファイルを作成します。
hogan

3

1.ホストで秘密鍵を見つけます。

vagrant ssh-config
#

出力:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2.秘密鍵のパスとポート番号を変数に保存します。

上記の出力で次の2つのコマンドを使用します。

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3.公開鍵を生成してゲストマシンにアップロードします。

コピー/パスタ、変更は不要:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#

1
説明した問題が何度も発生しました。通常、パッケージを作成し、Vagrantボックスを復元した後です。うまくいったのは、Vagrantに公開鍵をVMに挿入するように指示するために、次の構成を追加することです。config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueしかし、今回は上記の構成では何もしませんでした。なぜなのか本当にわからないので、運がなければキーが挿入されない理由をデバッグしようとしました。だから私はあなたの解決策と出来上がりにフォールバックしました!できます!
stz184 2018

2

Macソリューション:

  1. ローカルのssh id_rsa鍵をvagrant秘密鍵に追加

    vi /Users//.vagrant/machines/default/virtualbox/private_key

    /Users//..ssh/id_rsa

  2. コピーされた公開キー/Users//.ssh/id_rsa.pubがバガントボックスauthorized_keysに

ssh vagrant@localhost -p 2222 (パスワード:vagrant) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

問題は解決しました。

のおかげで


1

また、乗り越えられなかった:

デフォルト:SSH認証方法:秘密鍵

VirtualBox GUIを使用すると、OSプロセッサーの不一致があることがわかりました。

浮浪者をさらに前進させるために、私はBIOS設定で直感に反する必要がありました:

無効化:仮想化

有効化:VT-X

BIOSでこれらの設定を切り替えてみてください。


1

最初に、自動生成されたinsecure_private_keyファイルを削除してから、次のように入力してこのファイルを再生成する必要があります

vagrant ssh-config

その後

vagrant halt
vagrant up

うまくいくはず


私はこれを試しましたが、内部でUbuntu Virtual Box VMを使用しているため、エラーが発生します。
Ashish Karpe

#vagrant up 'virtualbox'プロバイダーでマシン 'default'を起動しています... ==>デフォルト:以前に設定された転送ポートをすべてクリアしています... ==>デフォルト:以前に設定されたネットワークインターフェイスをすべてクリアしています... ==>デフォルト:構成に基づいてネットワークインターフェイスを準備しています...デフォルト:アダプター1:nat ==>デフォルト:ポートを転送しています...デフォルト:22(ゲスト)=> 2222(ホスト)(アダプター1)==>デフォルト:VMを起動しています... 。==>デフォルト:マシンの起動を待機しています。これには数分かかる場合があります...デフォルト:SSHアドレス:127.0.0.1:2222デフォルト:SSHユーザー名:
vagrant

1

以下の方法で問題を解決しました。1. Git Bashを使用して新しいSSHキーを作成します

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. 「キーを保存するファイルを入力してください」というプロンプトが表示されたら、Enterキーを押します。これは、デフォルトのファイルの場所を受け入れます。

    キーを保存するファイルを入力してください(/Users/[you]/.ssh/id_rsa):[Enterキーを押します]

  2. プロンプトで、安全なパスフレーズを入力します。パスフレーズが必要ない場合は、空のままにしてEnterキーを押します。

    キーを保存するファイルを入力してください(/Users/[you]/.ssh/id_rsa):[Enterキーを押します]

  3. Vagrant VMに接続するには、次のコマンドを入力します

    ssh vagrant @ localhost -p 2222

次のメッセージが表示されたら、「yes」と入力してEnterキーを押します。

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. 次に、SSH接続タイプを確立します。$ vagrant ssh

  2. ホストの公開鍵をVagrant VMのauthorized_keysファイルにコピーします。そのためには、「Users / [you] /。ssh」フォルダーに移動し、ホストマシンのid_rsa.pubファイルのコンテンツをコピーして、Vagrant VMの「〜/ .ssh / authorized_keys」ファイルに貼り付けます。

  3. Vagrant VMのSSHフォルダーとauthorized_keysファイルの権限を変更する
  4. $ vagrant reloadでvagrantを再起動します

0

次に、マシンを起動しました。

vagrant ssh-config

私は以下を得ました:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

それから私は走った

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

ここから起動したマシン

  • El Capitan 10.11.1 Beta(15B38b)
  • Virtual Box 5.0.8 r103449
  • 浮浪者1.7.4

0

ここでのすべての応答の間に、試すべき良いことがたくさんあります。完全を期すために

ssh vagrant@localhost -p 2222

@Bizmateが示唆しているように、失敗した場合は、

AllowUsers vagrant

/etc/ssh/sshd_config、あなたのゲスト/浮浪者のマシンの。


0

2015年5月からPuphpetセットアップでVagrantを使用していて、この問題がありました。生成された構成は、安全でないキーを検出した場合に、sagキーを再生成するVagrant 1.7.4(またはおそらく少し前のこと?)の動作を処理しなかったようです。

Puphpetで生成されたVagrantfile(ローカルセットアップ)の "if File.file?(customKey)"句に以下を追加することで解決しました。

config.ssh.insert_key = false

参照コミット


0

この問題を修正するために私が従ったすべての正しい手順は、vagrant upコマンドの実行時に発生しました。

これらは私が従ったステップです

  1. フォルダを作成します。例:F:\ projects
  2. git bashでこのフォルダーを開き、次のコマンドを実行しますssh-keygen -t rsa -b 4096 -C "your_email@example.com"(有効なメールアドレスを入力)
  3. 次に、プロジェクトフォルダー内の2つの別々のファイルにキーペアを生成します。例:project(秘密鍵ファイル)、project.pub(公開鍵ファイル)
  4. この場所C:\ Users \ acer.vagrant.dに移動し、ファイルinsecure_private_keyを見つけます
  5. ファイルのバックアップを取得し、新しく作成した秘密鍵の内容をコピーして、insecure_private_keyファイルに貼り付けます。次に、insecure_private_keyをコピーして、この場所にも貼り付けます。
  6. 今すぐあなたのプロジェクトの場所に放浪しています。上記の問題タイプを生成した後、vagrant sshを入力し、ユーザー名とパスワードを入力して内部に入ります。(デフォルトでは、ユーザー名とパスワードはvagrantとして設定されています)
  7. この場所に移動し、cd /home/vagrant/.sshと入力して、mv authorized_keys authorized_keys_bkと入力します。
  8. 次に、ls -alと入力し、vi authorized_keysと入力して、authorized_keysファイルviエディターを開きます。
  9. notepad ++(project.pub)から生成された公開鍵を開き、コンテンツをコピーします。次に、git bashでiを押して、viエディターで挿入モードを有効にし、右クリックして貼り付けます。エスケープを押して挿入モードを終了した後
  10. :wq!ファイルを保存してls -alと入力します
  11. 次に、drwxを変更する必要がないように、アクセス許可が設定されます------。2 vagrant vagrant 4096 2月13日15:33 drwx ------。4 vagrant vagrant 4096 2月13日14:04 .. -rw -------。1 vagrant vagrant 743 2月13日14:26 authorized_keys -rw -------。1ルートルート409 2月13日13:57 authorized_keys_bk -rw -------。1 vagrant vagrant 409 Jan 2 23:09 authorized_keys_originialそれ以外の場合はchmod 600 authorized_keysと入力し、次のコマンドを入力します。chown vagrant:vagrant authorized_keys
  12. 最後に、vagrant haltとvagrant upを再度実行します。

************************これは私にとっては仕事上の問題です******************** ***********


0

私のような馬鹿者であるか、彼らの迷惑なマシンに奇妙なことが起こった人々のためだけに。このエラーは、悪意のあるユーザーのホームディレクトリのアクセス許可を(意図的にまたは誤って)変更した場合にも発生する可能性があります。

代わりに(他の投稿で説明されているように)パスワード(「vagrant」)を使用してログインし、次のコマンドを実行して権限を修正できます。

sudo chown -R vagrant:vagrant /home/vagrant

その後、パスワードを入力せずに再度ログインできるはずです。

TL; DR:Vagrantホームフォルダーのアクセス許可が間違っています。


0

シンプル:

homestead destroy
homestead up

編集(最初の考えほど単純ではありません):

問題は、新しいバージョンのホームステッドがphp7.0他のいくつかのものを使用することでした。この混乱を避けるには、必ずverisonin を設定してHomestead.ymlください。

version: "0"

0

この問題は、Windows 7のCMDでコマンドを実行することで解決しました。これは、このスレッドの最後の投稿のリンクです。

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f

0

この2日間、再梱包されたベースボックスで頭をぶつけていました。(Mac OS X、El Capitan)

@Radekの手順に従って、ソースボックスで 'vagrant ssh-config'を実行して取得しました。

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

新しいコピーで、そのコマンドは私に与えました:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

だから、私はこの行を新しいコピーに追加しました:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

完璧ではありませんが、私は自分の人生を続けることができます。


0

Windowsでの別の簡単な解決策は、ファイルHomestead / Vagrantfileに移動し、次の行を追加して、秘密鍵の代わりにユーザー名/パスワードで接続します。

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

したがって、最終的にファイルの一部は次のようになります。

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

この助けを願っています..


0

私は自分のVMマシンでこれを試しました

権限/ home / vagrantを変更します(その上でchmod 700を実行しました)

今私は自分のボックスに直接sshできます

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