Vagrant ssh身份验证失败

时间:2014-04-07 20:53:35

标签: ssh vagrant virtualbox private-key vagrantfile

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个文件。

  • 粘贴this public key 进入~/.ssh/authorized_keys

我还尝试使用私有(hostonly)网络而不是公共(桥接)网络,在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"

我也尝试在Vagrantfile中设置config.ssh.password。这会输出SSH auth method: password,但仍然无法进行身份验证。

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

看起来像others have had success with this configuration,所以一定有一些我做错了。

found this thread并启用了GUI,但这并没有帮助。

30 个答案:

答案 0 :(得分:160)

一般信息:默认为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. 添加
  4. 不要忘记将您的公钥添加到Vagrant VM上的~/.ssh/authorized_keys。您可以通过复制粘贴或使用ssh-copy-id之类的工具(用户:root密码:vagrant端口:2222)ssh-copy-id '-p 2222 root@127.0.0.1'
  5. 来执行此操作

    如果仍然无效,请尝试:

    1. insecure_private_key

    2. 删除c:\Users\USERNAME\.vagrant.d\insecure_private_key个文件
    3. 运行vagrant up(vagrant将生成一个新的insecure_private_key文件)

    4. 在其他情况下,只需在<{strong> Vagrantfile中设置forward_agent即可:

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

      <强>有用:

      配置 git 可能与git-scm.com

      配合使用

      设置此程序并创建个人系统私钥将位于您的个人资料路径中:c:\users\USERNAME\.ssh\id_rsa.pub

      PS:最后 - 建议您查看Ubuntu on Windows 10

答案 1 :(得分:79)

以上都不适合我。不知何故,该框在vagrant用户 authorised_keys 文件中添加了错误的公钥。

如果你仍然可以使用流浪汉密码(密码是流浪汉)在盒子上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。它现在应该工作。

答案 2 :(得分: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工作正常。

答案 3 :(得分:40)

在来宾计算机/ VM中运行以下命令:

 array (size=14)
 'SCHEMA_NAME' => null
 'TABLE_NAME' => string 'companies' (length=9)
 'COLUMN_NAME' => string 'phonenumber' (length=11)
 'COLUMN_POSITION' => int 13
 'DATA_TYPE' => string 'int' (length=3)
 'DEFAULT' => null
 'NULLABLE' => boolean false
 'LENGTH' => null
 'SCALE' => null
 'PRECISION' => null
 'UNSIGNED' => null
 'PRIMARY' => boolean false
 'PRIMARY_POSITION' => null
 'IDENTITY' => boolean false

然后做流浪汉停止。这将删除并重新生成您的私钥。

(这些步骤假设您已经创建或已经拥有主文件夹下的〜/ .ssh /和〜/ .ssh / authorized_keys目录。)

答案 4 :(得分:19)

根据我的经验,这对于新的流浪汉机器而言是一个令人惊讶的频繁问题。到目前为止,解决它的最简单方法是在客户端上手动创建所需的ssh密钥,而不是更改配置本身。然后使用主机上的私钥。

  1. 登录流浪汉机器:vagrant ssh,使用默认密码vagrant
  2. 创建ssh密钥:例如,ssh-keygen -t rsa -b 4096 -C "vagrant"as adviced by GitHub's relevant guide)。
  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. 从流浪汉机器退出: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"一样简单。)此外,如果您使用的是PuPHPet生成的机器,则可以将私钥存储到文件{ {1}}它将自动添加到Vagrantfile的ssh配置中。
  9. 测试设置:puphpet/files/dot/ssh/id_rsa现在应该可以使用。
  10. 如果是这种情况,请祝贺您自己,vagrant ssh,如果需要,请运行logout并继续执行有意义的任务。

    如果您仍然遇到问题,可以方便地将详细标志添加到ssh命令以简化调试。您可以在双击之后传递该(或任何其他选项)。例如,输入vagrant provision。您可以随意添加任意数量的v,每个都会为您提供更多信息。

答案 5 :(得分:9)

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

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

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

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

答案 6 :(得分:8)

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

我遇到的问题是我错过了.vagrant/machines/default/virtualbox/private_key中的私钥。我从原始框和Viola!的相同位置复制了私钥!

答案 7 :(得分:6)

我已经找到了解决Win 8.2上的密钥问题的方法,其中我没有成功使用此处提到的任何方法。可能有趣的是,VirtualBox,Vagrant和Box的完全相同的组合在Win 7 Ultimate上运行没有任何问题。

我通过在Vagrantfile中添加以下命令切换到密码验证:

More

请注意,我不确定这是否是唯一需要的更改,因为我已经这样做了:

  1. 我生成了一个新的RSA密钥对并相应地更改了authorized_keys文件(全部在虚拟机中,请参阅上面和其他地方的建议)

  2. 我将私钥复制到Vagrantfile所在的同一目录并添加了

    config.ssh.password = "vagrant"
    config.ssh.insert_key = false
    
  3. 但我相信这些变化无关紧要。我花了很多时间尝试,所以我没有改变工作配置的原因显而易见:)

答案 8 :(得分: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安全性有关。它拒绝识别证书,如果它们在当前用户之外可以访问,那么流浪者尝试登录就会被拒绝。

答案 9 :(得分:4)

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

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

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

答案 10 :(得分:3)

这发生在我身上好几次,我解决它的方式是:

  1. 检查并确保您的Vagrantfile具有正确的私钥路径:

    config.ssh.private_key_path =“/ home / razvan / .ssh / id_rsa”

  2. 执行&gt; linux终端中的vagrant ssh命令

  3. 在您的流浪汉机器上转到

    cd /home/vagrant/.ssh

  4. 并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的ssh密钥相同。如果没有将 vagrant authorized_keys中的那个替换为〜/ .ssh / id_rsa.pub中本地计算机上的那个。

    1. Reload Vagrant:

      vagrant reload

    2. 希望这有助于其他人。干杯!

答案 11 :(得分:3)

1。在主机中找到私钥:

@Component

输出:

vagrant ssh-config
#

2。将私钥路径和端口号存储在变量中:

将这两个命令与上面的输出一起使用:

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

3。生成公钥并将其上传到来宾计算机:

复制/意大利面,无需更改:

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

答案 12 :(得分:3)

这可能是列表中的最后一个答案,但这对我有用,我没有在任何地方找到这个答案,经过2天的研究后我发现它是我自己的,所以如果没有别的办法可以做到这一点你会更好你到现在为止。

在我的情况下,问题来自我的VirtualBox。我不知道选项被禁用的原因是什么,应该已经启用了。

enter image description here

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

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

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

答案 13 :(得分:2)

因为卡住了并且超时而无法运行流浪汉?

我最近发生了一次“笔记本电脑进水事件”,不得不迁移到一个新笔记本电脑(顺便说一下,在MAC上)。

我成功地使用流浪汉在所有项目旁边启动并运行了

$ 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-查找流浪者使用的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”登录到无业游民的计算机: $ 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 halt $ vagrant up

希望您现在可以高举双臂……

我从Ned Batchelders article那里得到了一点点修改-内德,你是冠军!

答案 14 :(得分:2)

确保您的第一个网络接口是NAT。当您构建盒子时,另一个第二个网络接口可以是您想要的任何东西。不要忘记Vagrant用户,如Google主题中所述。

祝你好运。

答案 15 :(得分:1)

也无法超越:

默认:SSH身份验证方法:私钥

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

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

禁用:虚拟化

启用:VT-X

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

答案 16 :(得分: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

  4. 当您收到以下消息时,请键入“是”并按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

答案 17 :(得分:1)

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

重新生成此文件
vagrant ssh-config

然后

vagrant halt
vagrant up

应该有效

答案 18 :(得分:0)

当vagrant up命令运行时,我执行了所有正确的步骤来解决此问题。

这些是我遵循的步骤

  1. 创建一个文件夹。例如F:\ projects
  2. 在git bash中打开此文件夹并运行此命令    ssh-keygen -t rsa -b 4096 -C“your_email@example.com”(提供有效的电子邮件地址)
  3. 然后在项目文件夹中的两个单独文件中生成密钥对。例如项目(私钥文件),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 Feb 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并键入此命令too chown vagrant:vagrant authorized_keys
  12. 最后让流浪汉停止并再次流浪。
  13. ************************这对我来说很精致***************** **************

答案 19 :(得分:0)

简单:

homestead destroy
homestead up

编辑(不像初个想法那么简单):

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

version: "0"

答案 20 :(得分:0)

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

我通过在我的Puphpet生成的Vagrantfile(本地设置)中添加以下内容来解决它&#34;如果是File.file?(customKey)&#34;子句:

WITH CTE AS(
    SELECT *, rn = ROW_NUMBER() OVER(PARTITION BY cola ORDER BY id DESC)
    FROM ta
)
SELECT
    cola, colb
FROM CTE
WHERE rn <= 2
order by id

Reference commit

答案 21 :(得分: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

答案 22 :(得分:0)

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

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

sudo chown -R vagrant:vagrant /home/vagrant

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

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

答案 23 :(得分:0)

在这里的所有回复中,有很多好东西要尝试。为了完整,如果你

ssh vagrant@localhost -p 2222

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

AllowUsers vagrant

在你的客人/流浪汉机器的/etc/ssh/sshd_config

答案 24 :(得分: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"
...

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

答案 25 :(得分: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

希望这有帮助..

答案 26 :(得分:0)

我已启动机器,然后:

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

然后我跑了

{{1}}

机器从

启动
  • El Capitan 10.11.1 Beta(15B38b)
  • Virtual Box 5.0.8 r103449
  • Vagrant 1.7.4

答案 27 :(得分:0)

我在VM机器上尝试过

更改权限/ home / vagrant(在其上设置了chmod 700)

现在我可以直接放入我的盒子了

答案 28 :(得分:0)

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

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

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

答案 29 :(得分:0)

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

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

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