160

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.password在 Vagrantfile 中进行设置。这确实输出SSH auth method: password,但仍然没有进行身份验证。

我还尝试重建盒子并重新检查以上所有内容。

看起来其他人在这个配置上已经成功了,所以一定是我做错了什么。

找到了这个线程并启用了 GUI,但这并没有帮助。

4

31 回答 31

179

有关一般信息:默认情况下 ssh-connect 您可以简单地使用

用户:vagrant密码:vagrant

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

首先,尝试:insecure_private_key查看您的机器配置中的vagrant 是什么

$ 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 之类的工具来完成(用户:root密码:vagrant端口: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 10 上的 Ubuntu

于 2014-05-09T00:45:11.747 回答
86

以上都不适合我。不知何故,盒子在 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。它现在应该可以工作了。

于 2015-06-11T22:08:40.147 回答
48

如果您在 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 工作正常。

于 2016-08-04T06:51:55.167 回答
43

在客户机/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 目录。)

于 2015-08-19T22:53:05.000 回答
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 和剪贴板的精细组合cat .ssh/id_rsa,绘制和复制(必须存在更好的方法,去发明一个!)。
  6. 从流浪机器注销:logout
  7. 通过查看 vagrant 的配置找到当前使用的私钥:(vagrant ssh-config例如 ÌdentityFile "/[...]/private_key".
  8. 将当前私钥替换为您在主机上创建的私钥:例如nano /[...]/private_key,如果所有其他方法都失败,则从剪贴板粘贴。(但是请注意,如果您的 private_key 不是特定于项目的,而是由多个 vagrant 机器共享,您最好自己配置路径,以免破坏其他完美工作的机器!更改路径就像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,每个都会为您提供更多信息。

于 2016-06-28T20:55:21.610 回答
14

由于卡住并超时而无法运行 vagrant?我最近遇到了“笔记​​本电脑进水事件”,不得不迁移到新的(顺便说一下在 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 - 找到IdentityFileVagrant 使用的:

$ 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 <path-to-insecure_private_key>

它会输出如下内容:

ssh-rsa AAAAB3Nyc2EAAA...9gE98OHlnVYCzRdK8jlqm8hQ==

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)
...

注意:如果 vagrant guest 被配置为不允许密码验证,你需要打开 VBox 的 GUI,双击 guest name,登录 as vagrant/vagrant,然后sudo -s编辑/etc/ssh/sshd_config并查找PasswordAuthentication no行(通常在文件末尾),替换noyes并重新启动 sshd (即systemctl reload sshd/etc/init.d/sshd restart)。

4 - 将公钥添加到/home/vagrant/authorized_keys文件中。

$ echo "ssh-rsa AA2EAAA...9gEdK8jlqm8hQ== vagrant" > /home/vagrant/.ssh/authorized_keys

5 - 退出 ( CTRL+ d) 并停止 Vagrant 客人,然后将其重新启动。

重要的是,如果您使用任何配置工具(例如 Ansible 等)在重新启动您的访客之前禁用它,因为 Vagrant 会认为您的访客由于使用不安全的私钥而未配置。它将重新安装密钥,然后运行您的配置器!

$ vagrant halt
$ vagrant up

希望你现在能举起双臂……

我从 Ned Batchelders 的文章中得到了这个,稍作修改- Ned 你是冠军!

于 2019-04-05T17:14:20.717 回答
11

如果您试图强制您的虚拟机默认使用 root 用户进行 SSH,也会发生这种情况......

例如,您的 Vagrantfile 中这样的配置可能会导致此失败:

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

解决方案:注释掉这些行,然后重试!

于 2015-02-03T15:22:07.740 回答
10

问题我在我配置的盒子上收到了 ssh 身份验证错误。原来的工作正常。

对我来说,问题是我在.vagrant/machines/default/virtualbox/private_key. 我从原始盒子和 Viola 的相同相对位置复制了私钥!

于 2015-01-23T11:51:07.817 回答
9

我找到了一种解决 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"
    

但我相信这些变化是无关紧要的。我花了很多时间尝试,所以我没有因为明显的原因改变工作配置:)

于 2015-11-06T10:04:09.710 回答
5

对我来说,这是通过更改 vagrant home 目录中 .ssh 文件夹的权限来解决的(即“~vagrant/.ssh”)。我想我在为我的应用程序设置 ssh 密钥时弄乱了权限。

似乎 'authorized_keys' 文件必须是 'rw' 仅适用于 'vagrant' 用户所以 "chmod 600 authorized_keys"; 目录本身及其父目录也是如此:

所以:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

只有在我恢复了所有这些权限之后,vagrant ssh 才重新开始工作。

我认为这与 ssh 安全性有关。如果证书可以通过当前用户以外的任何方式访问,它会拒绝识别证书,因此 vagrants 尝试登录会被拒绝。

于 2015-01-26T16:25:17.590 回答
4

如果您在 VagrantFile 中使用默认 SSH 设置,并且由于崩溃重新关联您的 VM 框后开始看到 SSH 身份验证错误,请尝试替换 vagrant 机器中的公钥。

由于安全原因,Vagrant 在每次注销时替换与不安全私钥对关联的公钥。如果您没有正确关闭机器,公钥/私钥对可能会不同步,从而导致 SSH 身份验证错误。

要解决此问题,只需加载当前不安全的私钥,然后将公钥对复制到 VM 的 authorized_keys 文件中。

于 2015-06-29T02:20:43.747 回答
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 中的本地计算机上的相同。如果没有将您的vagrant authorized_keys 中的那个替换为在 ~/.ssh/id_rsa.pub 中找到的本地计算机上的那个。

  1. 重新加载流浪者:

    流浪者重新加载

希望这对其他人有帮助。干杯!

于 2016-04-14T08:02:19.910 回答
3

这可能是列表中的最后一个答案,但这对我有用,我在任何地方都没有找到这个答案,经过 2 天的研究,我自己找到了它,所以如果到目前为止没有其他方法对你有用,你最好试试这个。

就我而言,问题来自我的 VirtualBox。我不知道出于什么原因禁用了某个选项,应该启用它。

在此处输入图像描述

正如您在图像中看到的,我的 VirtualBox 存在一些网络问题,为了解决这个问题我必须做的是选择我的机器,按设置,网络选项卡,然后确保选项 Cable Connected被选中。在我的情况下,这个选项没有被选中,我在这一步失败了:

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

首先我认为该端口已经在使用中,之后我重新安装了 Vagrant,我还尝试了其他的东西,但没有一个对我有用。

于 2016-10-06T09:26:36.090 回答
3

1. 在主机中找到私钥:

vagrant ssh-config
#

输出:

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

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
#
于 2017-11-17T18:50:21.903 回答
2

Mac 解决方案:

  1. 将本地 ssh id_rsa 密钥添加到 vagrant 私钥

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

    /用户//.ssh/id_rsa

  2. 将公钥 /Users//.ssh/id_rsa.pub 复制到 vagrant box authorized_keys

ssh vagrant@localhost -p 2222(密码:流浪) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

问题已解决。

谢谢

于 2016-08-15T06:49:48.183 回答
1

确保您的第一个网络接口是 NAT。另一个第二个网络接口可以是你在构建盒子时想要的任何东西。不要忘记 Vagrant 用户,正如 Google 线程中所讨论的那样。

祝你好运。

于 2014-04-08T01:20:42.457 回答
1

首先,您应该删除自动生成的 insecure_private_key 文件,然后通过键入重新生成此文件

vagrant ssh-config

然后

vagrant halt
vagrant up

它应该工作

于 2016-02-26T18:05:12.060 回答
1

也无法超越:

默认:SSH 认证方式:私钥

当我使用 VirtualBox GUI 时,它告诉我操作系统处理器不匹配。

为了让 vagrant 继续前进,在 BIOS 设置中,我不得不反直觉地:

禁用:虚拟化

启用:VT-X

尝试在 BIOS 中切换这些设置。

于 2016-03-11T15:04:04.517 回答
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):[按回车键]

  2. 在提示符处,键入安全密码。如果您不需要密码,您可以留空并按 Enter。

    输入保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按回车键]

  3. 要连接到您的 Vagrant VM,请键入以下命令

    ssh vagrant@localhost -p 2222

当您收到以下消息时,键入“是”并按 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 : $ vagrant reload
于 2016-09-10T04:43:18.460 回答
1

另一个简单的解决方案,在 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

希望这有帮助..

于 2017-08-17T10:41:10.417 回答
1

如果您使用的是windows并且此问题意外出现,请在配置中尝试以下代码。

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

这基本上使用了默认的 vagrant 配置。

于 2021-06-01T11:17:50.980 回答
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 测试版 (15B38b)
  • 虚拟盒子 5.0.8 r103449
  • 流浪者 1.7.4
于 2015-10-24T01:47:08.260 回答
0

在这里的所有回复之间,有很多好东西可以尝试。为了完整起见,如果您

ssh vagrant@localhost -p 2222

正如@Bizmate 建议的那样,它失败了,请确保你有

AllowUsers vagrant

/etc/ssh/sshd_config您的客人/流浪机器中。

于 2015-11-03T12:58:42.153 回答
0

我从 2015 年 5 月开始使用带有 Puphpet 设置的 Vagrant,并且遇到了这个问题。如果检测到不安全的密钥,生成的配置似乎没有处理 Vagrant 1.7.4(或者可能更早一点?)重新生成 ssh 密钥的行为。

我通过在“if File.file?(customKey)”子句中的 Puphpet 生成的 Vagrantfile(本地设置)中添加以下内容来解决它:

config.ssh.insert_key = false

参考提交

于 2016-01-15T00:10:18.767 回答
0

这是我在运行 vagrant up 命令时为解决以下问题而遵循的所有正确步骤。

这些是我遵循的步骤

  1. 创建一个文件夹。例如 F:\projects
  2. 在 git bash 中打开此文件夹并运行此命令 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"(输入有效的电子邮件地址)
  3. 然后在项目文件夹中的两个单独文件中生成密钥对。例如 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. 从记事本++(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 Feb 13 14:04 .. -rw-------。1 vagrant vagrant 743 Feb 13 14:26 authorized_keys -rw-------。1 root root 409 Feb 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。

************************这对我来说很好用************************ ***********

于 2016-02-14T06:38:47.747 回答
0

只是为了那些像我这样白痴的人,或者他们的流浪机器发生了奇怪的事情。当您更改 vagrant 用户主目录的权限时(有意或无意),也会发生此错误。

您可以使用密码('vagrant')代替登录(如其他帖子中所述),然后运行以下命令来修复权限。

sudo chown -R vagrant:vagrant /home/vagrant

然后您应该能够在不输入密码的情况下再次登录。

TL;DR:您的 vagrant home 文件夹的权限是错误的。

于 2016-05-31T01:46:43.193 回答
0

简单的:

homestead destroy
homestead up

编辑(不像最初想象的那么简单):

问题是新版本的宅基地使用php7.0和其他一些东西。为避免这种混乱,请确保您设置了verisonin Homestead.yml

version: "0"
于 2016-07-23T09:32:19.903 回答
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
于 2016-08-10T19:20:39.773 回答
0

在过去的几天里,我在一个重新包装的底座盒上一直在敲我的脑袋。(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"
...

不完美,但我可以继续我的生活。

于 2017-06-25T04:15:00.053 回答
0

不确定你的情况和我的情况一样。在我的情况下vagrant ssh,密钥身份验证失败并要求输入密码。我在我的~/.ssh/config(文件顶部)下面找到了我的旧设置。

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

删除它后,密钥身份验证开始工作。不再询问密码。

于 2021-06-23T00:42:22.520 回答
0

只需添加我的解决方案:

rm /Users/myusername/.ssh/config
vagrant ssh-config >> /Users/myusername/.ssh/config

与此处提出的其他解决方案有些相似。

于 2022-02-16T16:34:14.637 回答