流浪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.password在Vagrantfile中设置。这会输出,SSH auth method: password但仍不进行身份验证。

我还尝试了重新构建包装盒并重新检查以上所有内容。

看来其他人已成功使用此配置,所以肯定有些地方我做错了。

找到了该线程并启用了GUI,但这无济于事。

Answers:


1

确保您的第一个网络接口是NAT。另一个第二网络接口可以是构建盒子时所需的任何东西。别忘了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之类的工具(用户: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(无用的将生成一个新insecure_private_key文件)

在其他情况下,是有帮助的只是一套forward_agent Vagrantfile

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

有用:

可以使用git-scm.com配置git

设置此程序并创建个人系统私钥后,将在您的配置文件路径中:c:\users\USERNAME\.ssh\id_rsa.pub

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


4
在我看来,这是一个问题,因为config.ssh.private_key_path = "~/.ssh/id_rsa"必须删除这条线才能进行调配工作
holms,2014年

所有这些都有效,但是我还必须删除我在已知主机中的条目。移动位置和在登录时我有问题。
泵房

@shilovk +1谢谢,谢谢,非常感谢。“第二,做”就成功了。再次,非常感谢您。
whitesiroi

这为我指明了正确的方向,在我的情况下,我要做的就是删除.vagrant / machines / default / virtualbox / private_key文件,并在运行vagrant后将其替换为正确的文件-我将备份文件以防万一
andrux '16

第一步也是最重要的步骤是检查您的BIOS设置,确保已启用虚拟化。
Bahman.A

83

以上都不对我有用。不知何故,该框在流浪汉用户的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

完成后,退出虚拟机,然后再次尝试vagrant ssh。现在应该可以工作了。


4
vagrant reload在更新authorized_keys文件之后运行。Vagrant将自动检测到不安全的密钥并为您重新生成。之后应该工作。
ProfileTwist

47

如果您在流浪汉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可以正常运行。


假设我有5台机器来处理一个流浪文件。每次重新运行时,都需要为每台计算机执行此操作。我在那里使用centos为给定的无业游民设置永久修复此问题?
Pol

只需将vagrant升级到版本1.8.6,即可使用存在臭虫的1.8.5
波兰

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 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不是特定于项目的,而是由多台无所事事的机器共享的,则最好自己配置路径,以免破坏其他运行良好的机器!更改路径就像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,每个v将为您提供更多信息。


这个答案帮助了我。只是分享我的经验:不知何故(可能是在Capistrano安装期间,但尚未确认)我的来宾VM上的我的authenticated_key文件已删除。使用这些步骤重新创建它可以正常工作,现在我可以在没有密码提示的情况下使用ssh了。谢谢。
马丁·乔纳

从主机上删除两个密钥(公共/私有)后,我能够重做并解决该过程
vrwired

使用Git可以更快地传输文件内容。
lloan

1
在我尝试了其他任何方法之后,这个为我工作了,但是失败了..非常感谢!
nikolas '18 -10-4

这对我有用。我所做的唯一不同是使用ssh vagrant@10.0.0.0 -p 22 (password: vagrant)登录虚拟机的方法,vagrant ssh对我不起作用。10.0.0.0是我在中设置的私人IP地址vagrantfile
turrican_34

11

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

例如,您的Vagrantfile中的配置可能会导致以下故障:

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

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


2
对我来说,只设置config.ssh.username =“ vagrant”和config.ssh.password =“ vagrant”就可以了
psychok7

8

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

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


我要补充一点,作为.vagrant一名优秀的开发人员,我们正在将文件检入git ...因此,快速git checkout地发送上述文件可以节省一天!
伊恩·沃恩

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上)。

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

$ 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的文章中得到了一点点修改就得到了-Ned 您是冠军!


您是天才,还是Ned Batchelders。无论哪种方式,它都解决了我的问题!
Adsy2010 '19

4

对我而言,这是通过更改无业游民的家庭目录中.ssh文件夹的权限(即“〜vagrant / .ssh”)解决的。我想在为应用程序设置ssh密钥时弄乱了权限。

看来,“ authorized_keys”文件仅对“无用”用户必须为“ rw”,因此“ chmod 600authorized_keys”;目录本身及其父目录也是如此:

所以:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

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

我认为这与SSH安全性有关。如果无法通过当前用户访问任何证书,它将拒绝识别证书,因此,无用的登录尝试因此被拒绝。


我有时无法更改,仅运行sudo chmod 600authorized_keys,但它仍然保持不变。我认为这与Windows共享有关。
Darius.V,2015年

例如,如果目录位于共享目录上,则有时会发生这种情况/vagrant/...
罗伯特·罗伯特(Robert)2015年

1
除了我的答案外,我还要对此答案进行投票。在我的另一台机器上,正是这个问题-/home/vagrant/.ssh目录的所有者错误。它是“ root:root”,但必须是“ vagrant:vagrant”
Michael

4

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

由于安全原因,每次注销时,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. 在您的游荡机器上,转到

    光盘/home/vagrant/.ssh

并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的ssh密钥相同。如果没有,请用〜/ .ssh / id_rsa.pub中的本地计算机上的无用授权密钥替换其中一个。

  1. 重新加载游民:

    流浪者重装

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


我没有〜/ .ssh文件夹,那我该怎么办?
Ashish Karpe 2016年

@AshishKarpe以700权限创建它,并authorized_keys在内部创建一个600权限的文件。
hogan's

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
#

1
我遇到过这么多次描述过的问题,通常是在包装然后还原Vagrant盒子之后。对我有用的是添加以下配置,以指示Vagrant将其公钥插入VM:config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = true但是这次,以上配置没有执行任何操作。我真的不知道为什么,尝试调试为什么没有运气才插入钥匙。所以我退回到您的解决方案,瞧!有用!
stz184

2

Mac解决方案:

  1. 将本地ssh id_rsa密钥添加到无业游民的私钥

    vi /用户//.vagrant/计算机/默认/ virtualbox / private_key

    /用户//.ssh/id_rsa

  2. 在游标框上的已复制公钥/Users//..ssh/id_rsa.pub

ssh vagrant@localhost -p 2222 (密码:无业游民) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

问题已解决。

谢谢


1

也无法超越:

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

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

为了使无所事事的事情进一步发展,在BIOS设置中,我不得不凭直觉来反驳:

禁用:虚拟化

启用:VT-X

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


1

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

vagrant ssh-config

然后

vagrant halt
vagrant up

它应该工作


我尝试了此操作,但仍然出现错误,这是因为我在尝试使用流浪汉而在其中使用Ubuntu Virtual Box VM?
Ashish Karpe 2016年

#vagrant up使用'virtualbox'提供程序启动计算机'default'... ==>默认值:清除任何先前设置的转发端口... ==>默认值:清除任何先前设置的网络接口... ==>默认值:根据配置准备网络接口...默认:适配器1:nat ==>默认:转发端口...默认:22(guest)=> 2222(主机)(适配器1)==>默认:正在引导VM。 。==>默认值:等待计算机启动。这可能需要几分钟...默认:SSH地址:127.0.0.1:2222默认:SSH用户名:无业游民默认:SSH身份验证方法:私钥
Ashish Karpe

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

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

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)
  • 虚拟盒子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,出现了此问题。如果生成的配置似乎检测到不安全的密钥,则似乎无法处理重新生成ssh密钥的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. 然后在项目文件夹中的两个单独文件中生成密钥对。例如project(私钥文件),project.pub(公钥文件)
  4. 转到此位置C:\ Users \ acer.vagrant.d并找到文件insecure_private_key
  5. 获取文件的备份,然后复制新创建的私钥的内容,并将其粘贴到insecure_private_key文件中。然后复制insecure_private_key并将其粘贴到此位置。
  6. 现在在您的项目位置流浪。生成上述问题后,输入vagrant ssh,然后输入用户名,密码进入。(默认情况下,用户名和密码设置为无业游民)
  7. 进入此位置cd /home/vagrant/.ssh并键入mvauthorized_keysauthorized_keys_bk
  8. 然后输入ls -al并输入viauthorized_keys来打开打开的authentic_keys文件vi编辑器。
  9. 从notepad ++(project.pub)打开生成的公钥并复制内容,然后在git bash上按i以在vi编辑器上启用插入模式,然后右键单击并粘贴。按下逃逸键后退出插入模式
  10. :wq!保存文件并输入ls -al
  11. 然后,像下面这样设置权限,无需更改drwx ------。2无业游民无业游民4096 Feb 13 15:33。drwx ------ 4无业游民无业游民4096 Feb 13 14:04 .. -rw -------。1个无业游民无业游民743 Feb 13 14:26authorized_keys -rw -------。1个根root 409 Feb 13 13:57authorized_keys_bk -rw -------。1个vagrant vagrant 409 Jan 2 23:09authorized_keys_originial否则键入chmod 600authorized_keys并键入此命令
  12. 最后,使无业游民停止并再次无业游民。

************************这对我来说很有效******************** ***********


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

在过去的几天里,在重新包装的底盒上,我一直在跳动我的头。(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)

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.