stream浪SSHauthentication失败

与SSHauthentication的问题:

==> 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的身份validation循环,然后手动成功ssh。

我在客人盒子上执行了以下步骤:

  • All Users启用Remote Login

  • 0700权限创build~/.ssh目录。

  • 创build了具有0600权限的~/.ssh/authorized_keys文件。

  • 将这个公钥粘贴到~/.ssh/authorized_keys

我也尝试使用私有(hostonly)networking而不是公共(桥接)networking,在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但仍然不authentication。

而且我也尝试重build盒子并重新检查以上所有内容。

看起来其他人已经在这个configuration上取得了成功 ,所以肯定有一些我做错了。

我发现这个线程并启用了GUI,但是这并没有帮助。

确保你的第一个networking接口是NAT。 另一个第二个networking接口可以是任何你想要build立盒子时。 不要忘记Vagrant用户,正如Google线程中所讨论的那样。

祝你好运。

有关一般信息:默认情况下,您可以简单地使用SSH连接

用户: vagrant密码: vagrant

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

首先,尝试:看你的机器configuration中有什么vagrant 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. 不要忘了将你的公钥添加到Vagrant虚拟机上的~/.ssh/authorized_keys 。 你可以通过复制粘贴或使用像ssh-copy-id (user: vagrant password: vagrant )这样的工具来完成。

如果还是不行,试试这个:

  1. c:\Users\USERNAME\.vagrant.d\insecure_private_key删除insecure_private_key文件

  2. 运行vagrant up (vagrant会生成一个新的insecure_private_key文件)

在其他情况下,仅在 Vagrantfile 设置forward_agent会 Vagrantfile

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

有用:

configurationgit可能与git-scm.com

设置完此程序后,创build个人系统私钥将位于您的个人资料path中: c:\users\USERNAME\.ssh\id_rsa.pub

PS:最后 – build议你看看Windows 10上的Ubuntu

以上都没有为我工作。 不知怎的,这个盒子在stream浪者用户authorised_keys文件中添加了错误的公钥。

如果你仍然可以用密码密码(密码是stream浪的),即

 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 

完成后退出虚拟机,再次尝试stream浪ssh。 它应该现在工作。

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

在guest虚拟机/虚拟机中运行以下命令:

 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 

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

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

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

例如,在你的Vagrant文​​件中这样的configuration可能会导致这种失败:

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

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

根据我的经验,这是一个新的stream浪者机器出乎意料的频繁问题。 到目前为止,解决这个问题的最简单的方法是,不是自己修改configuration,而是在客户端手动创build所需的ssh密钥,然后在主机上使用私钥。

  1. login到stream浪机: vagrant ssh ,使用默认密码vagrant
  2. 创buildssh密钥:例如, ssh-keygen -t rsa -b 4096 -C "vagrant" ( 正如GitHub的相关指南所build议的 )。
  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 ,paint和copy(必须存在更好的方法,创造一个!)的优良组合。
  6. 从stream浪机器logoutlogout
  7. 通过查看它的configuration来查找当前stream浪者使用的私钥: vagrant ssh-config (例如,查看dentityFile“/[…]/private_key”。
  8. 将当前私钥replace为您在主机上创build的私钥:例如, nano /[...]/private_key ,如果其他所有内容都失败,则从剪贴板粘贴。 (但是请注意 ,如果您的private_key不是特定于项目的,而是由多个stream浪机器共享的,您最好自己configurationpath,以免破坏其他完美工作的机器!更改path就像添加一行config.ssh.private_key_path = "path/to/private_key"一样简单config.ssh.private_key_path = "path/to/private_key"放入Vagrantfile。)
  9. testing设置: vagrant ssh现在应该工作。

如果是这样的话,祝贺你自己, logout ,如果需要的话可以运行vagrant provision ,并在手边进行有意义的工作。

问题我得到了我configuration的一个盒子上的sshauthentication错误。 原来工作正常。

对我来说,问题是我在.vagrant/machines/default/virtualbox/private_key丢失了一个私钥。 我从原来的盒子和中提琴复制相同的相对位置的私钥!

我已经find了解决Win 8.2上的关键问题的方法,在这里我没有使用这里提到的任何方法。 可能有趣的是,VirtualBox,Vagrant和Box在Win 7 Ultimate上完全相同的组合没有任何问题。

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

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

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

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

  2. 我将私钥复制到Vagrantfile驻留和添加的目录

      config.ssh.private_key_path = "./id_rsa" 

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

对于我来说,这是通过改变在stream浪家里directort(即“〜vagrant / .ssh”).ssh文件夹的权限解决的。 我想当我为我的应用程序设置ssh密钥时,我搞砸了权限。

看起来'authorized_keys'文件必须是“rw”,只能用于“vagrant”用户,所以“chmod 600 authorized_keys”; 目录本身及其父目录也是如此:

所以:

 chmod 600 authorized_keys chmod 700 . chmod 700 .. 

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

我认为这与ssh安全有关。 它拒绝承authentication书,如果他们是以任何方式访问超出当前用户,所以stream浪者试图login,因此被拒绝。

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

由于安全原因,stream浪者在每次注销时都会replace与不安全私钥对相关的公钥。 如果您没有正确closures您的机器,公钥/私钥对可能会不同步,从而导致SSHvalidation错误。

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

这可能是列表中的最后一个答案,但这对我有用,我没有在任何地方find答案,经过2天的研究,我发现我自己,所以你最好试试这个,如果没有别的工作,直到现在。

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

在这里输入图像说明

正如你在图像中看到的,我的VirtualBox出现了一些networking问题,为了解决这个问题我必须做的是select我的机器,按设置,networking选项卡,然后确保select电缆连接被选中。 在我的情况下,这个选项没有被选中,我在这一步失败:

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

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

这发生在我身上几次,我解决这个问题的方式是:

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

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

  2. 在linuxterminal执行> vagrant ssh命令

  3. 在你的stream浪机上去

    cd /home/vagrant/.ssh

并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的密钥相同。 如果不是用〜/ .ssh / id_rsa.pub中find的本地机器上的那个来replace你的vagrant authorized_keys。

  1. 重新加载stream浪汉:

    stream浪汉重新加载

希望这可以帮助别人。 干杯!

Mac解决scheme:

  1. 添加了本地的ssh id_rsa密钥来stream浪私钥

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

    /Users//.ssh/id_rsa

  2. 在vagrant box authorized_keys上复制公钥/Users//.ssh/id_rsa.pub

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

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

问题已解决。

谢谢

也无法超越:

默认:SSHauthentication方法:私钥

当我使用VirtualBox GUI时,它告诉我有一个OS处理器不匹配。

为了避免进一步恶化,在BIOS设置中,我必须直观地反驳:

禁用:虚拟化

启用:VT-X

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

首先,你应该删除自动生成的insecure_private_key文件,然后通过input重新生成这个文件

 vagrant ssh-config 

然后

 vagrant halt vagrant up 

它应该工作

我以下面的方式解决了这个问题。 1.使用Git Bash创build新的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. 当系统提示您input要保存密钥的文件时,请按Enter键。 这接受默认的文件位置。

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

  2. 在提示符下,input安全密码。 如果您不需要密码,您可以保留空白并按下回车键。

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

  3. 连接到您的Vagrant VMtypes以下命令

    ssh vagrant @ localhost -p 2222

当您得到以下消息types“是”,然后按回车。

 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. 现在build立一个SSH连接types:$ vagrant ssh

  2. 将主机公钥复制到Vagrant VM中的authorized_keys文件中。 为此,进入“Users / [you] /。ssh”文件夹,将主机中id_rsa.pub文件中的内容复制到Vagrant虚拟机中的“〜/ .ssh / authorized_keys”文件中。

  3. 更改Vagrant VM中的SSH文件夹和authorized_keys文件的权限
  4. 重新启动vagrant:$ vagrant重新加载

我已经启动了机器,然后:

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
  • stream浪者1.7.4

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

ssh vagrant@localhost -p 2222

正如@Bizmate所build议的,它失败了,一定要有

AllowUsers vagrant

在你的guest / vagrant机器的/etc/ssh/sshd_config中。

我从2015年5月开始使用Vagrant进行Puphpet设置,并且遇到了这个问题。 看起来,如果检测到不安全的密钥,那么生成的configuration不会处理Vagrant 1.7.4(或者更早一点?)重新生成ssh密钥的行为。

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

 config.ssh.insert_key = false 

参考提交

这是我为了解决这个问题而采取的所有正确步骤。

这是我遵循的步骤

  1. 创build一个文件夹。 例如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并find文件insecure_private_key
  5. 获取文件的备份并复制新创build的私钥的内容并粘贴到insecure_private_key文件中。 然后复制insecure_private_key并将其粘贴到这个位置。
  6. 现在在你的项目地点stream浪。 产生上面问题typesvagrant ssh并进入给用户名,密码。 (默认的用户名和密码设置为stream浪)
  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! 保存文件并inputls -al
  11. 然后权限设置如下,不需要改变drwx ——。 2无家可归的stream浪者4096 2月13日15:33。 drwx ——。 4stream浪stream浪者4096 Feb 13 14:04 .. -rw ——-。 1stream浪stream浪者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否则inputchmod 600 authorized_keys并input此命令也chown vagrant:vagrant authorized_keys
  12. 最后再跑上stream浪汉停下来,

************************这对我来说是好工作******************** ***********

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

您可以使用密码(“vagrant”)login(如其他post中所述),然后运行以下命令修复权限。

sudo chown -R vagrant:vagrant /home/vagrant

那么你应该可以在不input密码的情况下重新login。

TL; DR:您的stream浪家庭文件夹的权限是错误的。

简单:

 homestead destroy homestead up 

编辑(并不像想象中那么简单):

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

 version: "0" 

我解决了这个问题,通过在Windows 7 CMD上运行命令,这里给出了这个线程的最后一个post的链接,

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 

过去几天在重新包装的基地箱子上,我一直挨打。 (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" ... 

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

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

希望这个帮助..

1.在主机中find私钥:

 vagrant ssh-config # 

输出:

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

2.将私钥path和端口号存储在variables中:

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

 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 #