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
forAll Users
. -
使用
0700
权限创建了~/.ssh
目录 . -
使用
0600
权限创建了~/.ssh/authorized_keys
文件 . -
将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,但这没有帮助 .
27 回答
我从2015年5月起使用Vagrant和Puphpet设置并遇到了这个问题 . 似乎生成的配置没有处理Vagrant 1.7.4(或者可能稍早一点?)的行为,如果它检测到不安全的密钥,则重新生成ssh密钥 .
我通过在“if File.file?(customKey)”子句中的Puphpet生成的Vagrantfile(本地设置)中添加以下内容来解决它:
Reference commit
确保您的第一个网络接口是NAT . 当您构建盒子时,另一个第二个网络接口可以是您想要的任何东西 . 不要忘记Vagrant用户,如Google主题中所述 .
祝好运 .
For general information: 默认为ssh-connect你可以简单地使用
用户:
vagrant
密码:vagrant
https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user
First, try: 查看您的机器配置中有什么vagrant
insecure_private_key
例:
http://docs.vagrantup.com/v2/cli/ssh_config.html
Second, do: 使用个人系统私钥的内容更改文件
insecure_private_key
的内容Or use: 将其添加到Vagrantfile:
config.ssh.private_key_path
是您的本地私钥您的私钥必须可供本地ssh-agent使用 . 你可以查看
ssh-add -L
. 如果未列出,请使用ssh-add ~/.ssh/id_rsa
添加不要忘记在Vagrant VM上将公钥添加到
~/.ssh/authorized_keys
. 你可以通过复制粘贴或使用像ssh-copy-id这样的工具(用户:root
密码:vagrant
端口:2222)来实现ssh-copy-id '-p 2222 root@127.0.0.1'
If still does not work try this:
从
c:\Users\USERNAME\.vagrant.d\insecure_private_key
删除insecure_private_key
文件运行
vagrant up
(vagrant将生成一个新的insecure_private_key
文件)In other cases, it is helpful to just set forward_agent in
Vagrantfile
:Useful:
配置 git 可能与git-scm.com
设置完成后,此程序和创建个人系统私钥将在您的 Profiles 路径中:
c:\users\USERNAME\.ssh\id_rsa.pub
PS: 最后 - 建议你看Ubuntu on Windows 10
以上都不适合我 . 不知怎的,盒子在vagrant用户authorised_keys文件中添加了错误的公钥 .
如果你仍然可以使用流浪汉密码(密码是流浪汉)在盒子上ssh,即
然后使用以下命令将公钥内容从https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub复制到authorised_keys文件
完成后退出VM并再次尝试vagrant ssh . 它现在应该工作 .
如果您在vagrant 1.8.5上遇到此问题,请在github上查看此主题:
https://github.com/mitchellh/vagrant/issues/7610
它主要是由权限问题引起的,解决方法就是
然后
仅供参考:此问题仅影响CentOS,Ubuntu工作正常 .
在来宾计算机/ VM中运行以下命令:
然后做流浪汉停止 . 这将删除并重新生成您的私钥 .
(这些步骤假设您已经创建或已经拥有主文件夹下的〜/ .ssh /和〜/ .ssh / authorized_keys目录 . )
根据我的经验,这对于新的流浪汉机器来说是一个令人惊讶的频繁问题 . 到目前为止,最简单的解决方法是在客户端上手动创建所需的ssh密钥,而不是更改配置本身,然后使用主机上的私钥 .
登录流浪汉机器:
vagrant ssh
,使用默认密码vagrant
.创建ssh键:例如,
ssh-keygen -t rsa -b 4096 -C "vagrant"
(as adviced by GitHub's relevant guide) .重命名公钥文件(默认情况下为id_rsa.pub),覆盖旧公钥:
mv .ssh/id_rsa.pub .ssh/authorized_keys
.如果需要,重新加载ssh服务:
sudo service ssh reload
.将私钥文件(默认为id_rsa)复制到主机:例如,使用猫和剪贴板的精细组合,绘制和复制(必须存在更好的方法,发明一个!) .
从流浪汉机器退出:
logout
.通过查看其配置来查找vagrant使用的当前私钥:
vagrant ssh-config
(查找实例ÌdentityFile"/[...]/private_key" .将当前私钥替换为您在主机上创建的私钥:例如,
nano /[...]/private_key
并粘贴从剪贴板,如果一切都失败了 . ( Note ,但是,如果你的private_key不是项目特定的,但是由多个流浪汉机器共享,你最好自己配置路径,以免破坏其他完美工作的机器!更改路径就像在Vagrantfile中添加一行config.ssh.private_key_path = "path/to/private_key"
一样简单 . )此外,如果您使用的是PuPHPet生成的机器,您可以将您的私钥存储到文件puphpet/files/dot/ssh/id_rsa
,它将自动添加到Vagrantfile的ssh配置中 .测试设置:
vagrant ssh
现在应该可以使用 .如果是这种情况,请祝贺自己,如果需要的话,运行
vagrant provision
并继续进行有意义的任务 .如果您仍然遇到问题,可以方便地将详细标志添加到ssh命令以简化调试 . 您可以在双击之后传递该(或任何其他选项) . 例如,键入
vagrant ssh -- -v
. 您可以根据需要随意添加任意数量的v,每个都会为您提供更多信息 .如果您尝试强制VM默认使用root用户进行SSH,也会发生这种情况....
例如,Vagrantfile中的配置可能会导致此失败:
解决方案:注释掉这些行,然后再试一次!
问题我在我配置的盒子上收到了ssh身份验证错误 . 原来工作正常 .
对我来说问题是我错过了
.vagrant/machines/default/virtualbox/private_key
中的私钥 . 我从原始盒子和Viola的相同位置复制了私钥!我已经找到了解决Win 8.2上的密钥问题的方法,其中我没有成功使用此处提到的任何方法 . 可能有趣的是,VirtualBox,Vagrant和Box的完全相同的组合在Win 7 Ultimate上运行没有任何问题 .
我通过在Vagrantfile中添加以下命令切换到密码验证:
请注意,我不确定这是否是唯一需要的更改,因为我已经做过:
我生成了一个新的RSA密钥对并相应地更改了authorized_keys文件(所有在虚拟机中,请参阅上面和其他地方的建议)
我将私钥复制到Vagrantfile所在和添加的同一目录
但我相信这些变化无关紧要 . 我花了很多时间尝试,所以我没有改变工作配置明显的原因:)
对我来说,这是通过改变vagrant home directort中的.ssh文件夹的权限来解决的(即“~vagrant / .ssh”) . 当我为我的应用程序设置ssh密钥时,我想我搞砸了权限 .
似乎'authorized_keys'文件必须仅为'vagrant'用户'rw',所以“chmod 600 authorized_keys”;目录本身及其父目录也是如此:
所以:
只有在我恢复了所有这些权限之后,流浪汉ssh才开始重新运作 .
我认为这与ssh安全性有关 . 它拒绝识别证书,如果它们在当前用户之外可以访问,那么流浪者尝试登录就会被拒绝 .
如果您在VagrantFile中使用默认SSH设置,并且在崩溃后重新关联VM框后开始看到SSH身份验证错误,请尝试更换流浪者计算机中的公钥 .
由于安全原因,Vagrant在每次注销时替换与不安全私钥对相关联的公钥 . 如果未正确关闭计算机,公钥/私钥对可能会不同步,从而导致SSH身份验证错误 .
要解决此问题,只需加载当前不安全的私钥,然后将公钥对复制到VM的authorized_keys文件中 .
这可能是列表中的最后一个答案,但这对我有用,我没有在任何地方找到这个答案,经过2天的研究后我发现它是我的自己所以你最好试试这个,如果到目前为止还没有其他工作 .
在我的情况下,问题来自我的VirtualBox . 我不知道选项被禁用的原因是什么,应该已经启用了 .
正如您在图像中看到的那样,我的VirtualBox存在一些网络问题,为解决此问题我必须做的就是选择我的机器,按设置,网络选项卡,然后确保选项Cable Connected被选中了 . 在我的情况下,此选项未被选中,我在此步骤失败:
首先我认为端口已经在使用,之后我重新安装了Vagrant,我也尝试了其他的东西,但没有一个工作为了我 .
这发生在我身上好几次,我解决它的方式是:
config.ssh.private_key_path =“/ home / razvan / .ssh / id_rsa”
在linux终端中执行> vagrant ssh命令
在你的流浪汉机器上去
cd /home/vagrant/.ssh
并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的ssh密钥相同 . 如果没有将 vagrant authorized_keys中的那个替换为〜/ .ssh / id_rsa.pub中找到的 local machine 上的那个 .
流浪汉重装
希望这有助于其他人 . 干杯!
1.在主机中找到私钥:
输出:
2.将私钥路径和端口号存储在变量中:
将这两个命令与上面的输出一起使用:
3.生成公钥并将其上传到来宾计算机:
复制/意大利面,无需更改:
Mac解决方案:
vi /Users//.vagrant/machines/default/virtualbox/private_key
/Users//.ssh/id_rsa
ssh vagrant@localhost -p 2222
(密码:流浪汉)ls -la
cd .ssh
chmod 0600 ~/.ssh/authorized_keys
vagrant reload
问题解决了 .
谢谢
也无法超越:
默认值:SSH身份验证方法:私钥
当我使用VirtualBox GUI时,它告诉我操作系统处理器不匹配 .
为了让流浪者继续前进,在BIOS设置中我不得不反直觉地:
禁用:虚拟化
启用:VT-X
尝试在BIOS中切换这些设置 .
首先,您应该删除自动生成的insecure_private_key文件,然后键入以重新生成此文件
然后
它应该工作
我以下面的方式解决了这个问题 . 1.使用Git Bash创建新的SSH密钥
输入要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按Enter键]
输入要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按Enter键]
ssh vagrant @ localhost -p 2222
当您收到以下消息时,请键入“是”并按Enter键 .
现在 Build SSH连接类型:$ vagrant ssh
将主机公钥复制到Vagrant VM中的authorized_keys文件中 . 为此,请转到“Users / [you] / . ssh”文件夹,并将主机中id_rsa.pub文件中的内容复制到Vagrant VM中的“〜/ .ssh / authorized_keys”文件中 .
更改Vagrant VM中SSH文件夹和authorized_keys文件的权限
重启流浪者:$ vagrant reload
我已启动机器,然后:
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
Vagrant 1.7.4
在这里的所有回复中,有很多好东西可以尝试 . 为了完整,如果你
ssh vagrant@localhost -p 2222
正如@Bizmate建议的那样,它失败了,请确保你有
AllowUsers vagrant
在你的客人/流浪汉机器的
/etc/ssh/sshd_config
.当vagrant up命令运行时,我执行了修复此波纹管问题的所有正确步骤 .
这些是我遵循的步骤
创建一个文件夹 . 例如F:\ projects
在git bash中打开此文件夹并运行此命令ssh-keygen -t rsa -b 4096 -C "your_email@example.com"(放置有效的电子邮件地址)
然后在项目文件夹中的两个单独文件中生成密钥对 . 例如项目(私钥文件),project.pub(公钥文件)
转到此位置C:\ Users \ acer.vagrant.d并找到文件insecure_private_key
获取文件备份并复制新创建的私钥的内容,并将其粘贴到insecure_private_key文件中 . 然后复制insecure_private_key并将其粘贴到此位置 .
现在在您的项目位置流浪 . 生成上述问题后输入vagrant ssh并进入内部给出用户名,密码 . (默认用户名和密码设置为vagrant)
进入此位置cd /home/vagrant/.ssh并键入mv authorized_keys authorized_keys_bk
然后键入ls -al并键入vi authorized_keys以打开authorized_keys文件vi编辑器 .
从记事本(project.pub)打开生成的公钥并复制内容然后在git bash上按i以在vi编辑器上启用插入模式并右键单击并粘贴 . 按下退出后退出插入模式
:wq!保存文件并输入ls -al
然后设置权限,如下所示,无需更改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
最后再次将流浪汉停止并流浪 .
****这对我来说很精致 ***********
只是对那些像我这样白痴的人,或者他们的流浪汉机器发生了一些奇怪的事情 . 当您更改了vagrant用户的主目录(故意或偶然)的权限时,也会发生此错误 .
您可以使用密码('vagrant')登录(如其他帖子中所述),然后运行以下命令来修复权限 .
sudo chown -R vagrant:vagrant /home/vagrant
然后,您应该能够在不输入密码的情况下再次登录 .
TL;DR: The permissions on your vagrant home folder are wrong.
简单:
编辑(不像初个想法那么简单):
问题是宅基地的新版本使用
php7.0
和其他一些东西 . 为避免这种混乱,请确保在Homestead.yml
中设置verison
:我通过在Windows 7 CMD上运行命令解决了这个问题,如下所示这是此线程上的最后一篇帖子,
https://github.com/mitchellh/vagrant/issues/6744
在重新包装的基盒上,最近几天一直在打我的脑袋 . (Mac OS X,El Capitan)
按照@Radek的程序,我在源盒上做了'vagrant ssh-config',得到了:
在新副本上,该命令给了我:
所以,我刚刚在新副本中添加了这一行:
不完美,但我可以继续我的生活 .
另一个简单的解决方案,在Windows中,转到Homestead / Vagrantfile文件并添加这些行以连接用户名/密码而不是私钥:
所以,最后文件的一部分将如下所示:
希望这有帮助..