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
我也尝试使用私有(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,但这没有帮助。
确保您的第一个网络接口是NAT。当您构建盒子时,另一个第二个网络接口可以是您想要的任何东西。不要忘记Vagrant用户,如Google主题中所述。
祝好运。
对我来说,这是通过改变vagrant home directort中的.ssh文件夹的权限来解决的(即“~vagrant / .ssh”)。当我为我的应用程序设置ssh密钥时,我想我搞砸了权限。
似乎'authorized_keys'文件必须仅为'vagrant'用户'rw',所以“chmod 600 authorized_keys”;目录本身及其父目录也是如此:
所以:
config.ssh.private_key_path = "./id_rsa"
只有在我恢复了所有这些权限之后,流浪汉ssh才开始重新运作。
我认为这与ssh安全性有关。它拒绝识别证书,如果它们在当前用户之外可以访问,那么流浪者尝试登录就会被拒绝。
如果您在VagrantFile中使用默认SSH设置,并且在崩溃后重新关联VM框后开始看到SSH身份验证错误,请尝试更换流浪者计算机中的公钥。
由于安全原因,Vagrant在每次注销时替换与不安全私钥对相关联的公钥。如果未正确关闭计算机,公钥/私钥对可能会不同步,从而导致SSH身份验证错误。
要解决此问题,只需加载当前不安全的私钥,然后将公钥对复制到VM的authorized_keys文件中。
这可能是列表中的最后一个答案,但这对我有用,我没有在任何地方找到这个答案,经过2天的研究后我发现它是我的自己所以你最好试试这个,如果没有别的东西对你有效,直到现在。
在我的情况下,问题来自我的VirtualBox。我不知道选项被禁用的原因是什么,应该已经启用了。
chmod 600 authorized_keys
chmod 700 .
chmod 700 ..
正如您在图像中看到的那样,我的VirtualBox存在一些网络问题,为了解决这个问题我必须做的就是选择我的机器,按设置,网络选项卡,然后确保选项Cable Connected被选中了。在我的情况下,此选项未被选中,我在此步骤失败:
首先,我认为该端口已经在使用,之后我重新安装了Vagrant,我也尝试了其他的东西,但它们都没有为我工作。
这发生在我身上好几次,我解决它的方式是:
并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的ssh密钥相同。如果没有将您的vagrant authorized_keys中的那个替换为〜/ .ssh / id_rsa.pub中找到的本地机器上的那个。
希望这有助于其他人。干杯!
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
输出:
vagrant ssh-config
#
将这两个命令与上面的输出一起使用:
Host default
...
Port 2222
...
IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
...
复制/意大利面,无需更改:
pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#
Mac解决方案:
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
#
(密码:vagrant)ssh vagrant@localhost -p 2222
ls -la
cd .ssh
chmod 0600 ~/.ssh/authorized_keys
问题解决了。
谢谢
无法运行流浪汉,因为它卡住并超时?
我最近有一个“笔记本电脑事件中的水”,不得不迁移到一个新的(顺便说一下在MAC上)。
我成功地完成了所有项目,并在那个使用vagrant的项目旁边运行。
vagrant reload
它无法进行身份验证,一次又一次地重试,最终放弃了。
**这就是我通过3个步骤恢复原状的方式:**
1 - 找到vagrant使用的IdentityFile:$ $ 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...
vagrant ssh-config
2 - 检查IdentityFile中的公钥:$ 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
将ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key
替换为您的用户。它看起来像这样:
'<user-name>'
3 - 使用密码“vagrant”登录流浪汉机器:$ ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==
ssh -p 2222 -o UserKnownHostsFile=/dev/null [email protected]
4 - 将公钥添加到authorized_keys文件。 $ 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.
[email protected]'s password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...
5 - 退出(crtl + d)并停止流浪容器并将其重新启动。 $ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys
ssh-rsa
$ vagrant halt
希望你现在能拥有你的手臂......
我从Ned Batchelders vagrant up
得到了这个,只有一个小修改 - Ned你是冠军!
也无法超越:
默认值:SSH身份验证方法:私钥
当我使用VirtualBox GUI时,它告诉我操作系统处理器不匹配。
为了让流浪者继续前进,在BIOS设置中我不得不反直觉地:
禁用:虚拟化
启用:VT-X
尝试在BIOS中切换这些设置。
我以下面的方式解决了这个问题。 1.使用Git Bash创建新的SSH密钥
vagrant halt
vagrant up
当您收到以下消息时,请键入“是”并按Enter键。
$ 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.
一般信息:默认情况下,您可以使用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
config.ssh.private_key_path
是您当地的私钥ssh-add -L
。如果未列出,请使用ssh-add ~/.ssh/id_rsa
添加~/.ssh/authorized_keys
。你可以通过复制粘贴或使用像ssh-copy-id这样的工具(用户:root
密码:vagrant
port:2222)来实现ssh-copy-id '-p 2222 [email protected]'
如果仍然不起作用试试这个:
insecure_private_key
中删除c:\Users\USERNAME\.vagrant.d\insecure_private_key
文件vagrant up
(vagrant将生成一个新的insecure_private_key
文件)在其他情况下,在forward_agent中设置Vagrantfile
会很有帮助:
Vagrant::Config.run do |config|
config.ssh.forward_agent = true
end
有用:
配置git可以使用qazxsw poi
设置此程序并创建个人系统私钥将在您的个人资料路径:git-scm.com
PS:最后 - 建议你看看c:\users\USERNAME\.ssh\id_rsa.pub
我已启动机器,然后:
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)?
我得到了以下内容:
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
正如@Bizmate建议的那样,它失败了,请确保你有
ssh vagrant@localhost -p 2222
在您的客人/流浪汉机器的AllowUsers vagrant
。
我从2015年5月起使用Vagrant和Puphpet设置并遇到了这个问题。似乎生成的配置没有处理Vagrant 1.7.4(或者可能稍早一点?)的行为,如果它检测到不安全的密钥,则重新生成ssh密钥。
我通过在“if File.file?(customKey)”子句中的Puphpet生成的Vagrantfile(本地设置)中添加以下内容来解决它:
/etc/ssh/sshd_config
config.ssh.insert_key = false
当vagrant up命令运行时,我执行了修复此波纹管问题的所有正确步骤。
这些是我遵循的步骤
************************这对我来说很精致******************** ***********
只是对那些像我这样白痴的人,或者他们的流浪汉机器发生了一些奇怪的事情。当您更改了vagrant用户的主目录(故意或偶然)的权限时,也会发生此错误。
您可以使用密码('vagrant')登录(如其他帖子中所述),然后运行以下命令来修复权限。
然后,您应该能够在不输入密码的情况下再次登录。
TL; DR:您的vagrant主文件夹的权限是错误的。
简单:
sudo chown -R vagrant:vagrant /home/vagrant
编辑(不像初个想法那么简单):
问题是宅基地的新版本使用homestead destroy
homestead up
和其他一些东西。为了避免这种混乱,请确保在php7.0
中设置verison
:
Homestead.yml
我通过在Windows 7 CMD上运行命令解决了这个问题,如下所示这是此线程上的最后一篇帖子,
version: "0"
https://github.com/mitchellh/vagrant/issues/6744
在重新包装的基盒上,最近几天一直在打我的脑袋。 (Mac OS X,El Capitan)
按照@Radek的程序,我在源盒上做了'vagrant ssh-config',得到了:
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
在新副本上,该命令给了我:
...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...
所以,我刚刚在新副本中添加了这一行:
...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...
不完美,但我可以继续我的生活。
另一个简单的解决方案,在Windows中,转到Homestead / Vagrantfile文件并添加这些行以连接用户名/密码而不是私钥:
...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...
所以,最后文件的一部分将如下所示:
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
希望这有帮助..
以上都不适合我。不知怎的,盒子在vagrant用户authorised_keys文件中添加了错误的公钥。
如果你仍然可以使用流浪汉密码(密码是流浪汉)在盒子上ssh,即
Ubuntu on Windows 10
然后使用以下命令将公钥内容从ssh vagrant@localhost -p 2222
复制到authorised_keys文件
https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub
完成后退出VM并再次尝试vagrant ssh。它现在应该工作。
如果您在vagrant 1.8.5上遇到此问题,请在github上查看此主题:
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys
它主要是由权限问题引起的,解决方法就是
https://github.com/mitchellh/vagrant/issues/7610
然后
vagrant ssh
password: vagrant
chmod 0600 ~/.ssh/authorized_keys
exit
仅供参考:此问题仅影响CentOS,Ubuntu工作正常。
在来宾计算机/ VM中运行以下命令:
vagrant reload
然后做流浪汉停止。这将删除并重新生成您的私钥。
(这些步骤假设您已经创建或已经拥有主文件夹下的〜/ .ssh /和〜/ .ssh / authorized_keys目录。)
根据我的经验,这对于新的流浪汉机器来说是一个令人惊讶的频繁问题。到目前为止,最简单的解决方法是在客户端上手动创建所需的ssh密钥,而不是更改配置本身,然后使用主机上的私钥。
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
,使用默认密码vagrant ssh
。vagrant
(ssh-keygen -t rsa -b 4096 -C "vagrant"
)。mv .ssh/id_rsa.pub .ssh/authorized_keys
。sudo service ssh reload
,paint和copy的精细组合(必须存在更好的方法,发明一个!)。cat .ssh/id_rsa
。logout
(查找实例ÌdentityFile“/ [...] ./private_key”。vagrant ssh-config
并从剪贴板粘贴,如果所有其他方法都失败。 (但请注意,如果您的private_key不是特定于项目但由多个流浪者机器共享,则您最好自己配置路径,以免破坏其他完美工作的机器!更改路径就像在Vagrantfile中添加行nano /[...]/private_key
一样简单。)此外,如果您使用config.ssh.private_key_path = "path/to/private_key"
生成的机器,您可以将您的私钥存储到文件PuPHPet,它将自动添加到Vagrantfile的ssh配置。puphpet/files/dot/ssh/id_rsa
现在应该工作。如果是这样的话,请祝贺你自己,vagrant ssh
,如果需要的话运行logout
并继续进行有意义的任务。
如果您仍然遇到问题,可以方便地将详细标志添加到ssh命令以简化调试。您可以在双击之后传递该(或任何其他选项)。例如,键入vagrant provision
。您可以根据需要随意添加任意数量的v,每个都会为您提供更多信息。
如果您尝试强制VM默认使用root用户进行SSH,也会发生这种情况....
例如,Vagrantfile中的配置可能会导致此失败:
vagrant ssh -- -v
解决方案:注释掉这些行,然后再试一次!
问题我在我配置的盒子上收到了ssh身份验证错误。原来工作正常。
对我来说问题是我在config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
错过了一个私钥。我从原始盒子和Viola的相同位置复制了私钥!
我已经找到了解决Win 8.2上的密钥问题的方法,其中我没有成功使用此处提到的任何方法。可能有趣的是,VirtualBox,Vagrant和Box的完全相同的组合在Win 7 Ultimate上运行没有任何问题。
我通过在Vagrantfile中添加以下命令切换到密码验证:
.vagrant/machines/default/virtualbox/private_key
请注意,我不确定这是否是唯一需要的更改,因为我已经做过:
config.ssh.password = "vagrant"
config.ssh.insert_key = false
但我相信这些变化无关紧要。我花了很多时间尝试,所以我没有改变工作配置明显的原因:)