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
-
config.ssh.private_key_path
是你的本地私钥 - 您的私钥必须可供本地ssh-agent使用。 你可以用
ssh-add -L
来检查。 如果没有列出,用ssh-add ~/.ssh/id_rsa
- 不要忘了将你的公钥添加到Vagrant虚拟机上的
~/.ssh/authorized_keys
。 你可以通过复制粘贴或使用像ssh-copy-id (user:vagrant
password:vagrant
)这样的工具来完成。
如果还是不行,试试这个:
-
从
c:\Users\USERNAME\.vagrant.d\insecure_private_key
删除insecure_private_key
文件 -
运行
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
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密钥,然后在主机上使用私钥。
- login到stream浪机:
vagrant ssh
,使用默认密码vagrant
。 - 创buildssh密钥:例如,
ssh-keygen -t rsa -b 4096 -C "vagrant"
( 正如GitHub的相关指南所build议的 )。 - 重命名公钥文件(默认为id_rsa.pub),覆盖旧的:
mv .ssh/id_rsa.pub .ssh/authorized_keys
。 - 在需要的情况下重新加载ssh服务:
sudo service ssh reload
。 - 将私钥文件(默认为id_rsa)复制到主机:例如,使用cat和剪贴板,
cat .ssh/id_rsa
,paint和copy(必须存在更好的方法,创造一个!)的优良组合。 - 从stream浪机器
logout
:logout
。 - 通过查看它的configuration来查找当前stream浪者使用的私钥:
vagrant ssh-config
(例如,查看dentityFile“/[…]/private_key”。 - 将当前私钥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。) - 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
请注意,我不确定这是否是所需的唯一更改,因为我已经做了:
-
我生成了一个新的RSA密钥对,并相应地更改了authorized_keys文件(全部在虚拟机中,参见上面和其他地方的build议)
-
我将私钥复制到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,我也尝试过其他的东西,但是没有一个为我工作。
这发生在我身上几次,我解决这个问题的方式是:
-
检查并确保您的Vagrantfile具有正确的私钥path:
config.ssh.private_key_path =“/home/razvan/.ssh/id_rsa”
-
在linuxterminal执行> vagrant ssh命令
-
在你的stream浪机上去
cd /home/vagrant/.ssh
并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的密钥相同。 如果不是用〜/ .ssh / id_rsa.pub中find的本地机器上的那个来replace你的vagrant authorized_keys。
-
重新加载stream浪汉:
stream浪汉重新加载
希望这可以帮助别人。 干杯!
Mac解决scheme:
-
添加了本地的ssh id_rsa密钥来stream浪私钥
vi /Users//.vagrant/machines/default/virtualbox/private_key
/Users//.ssh/id_rsa
-
在vagrant box authorized_keys上复制公钥/Users//.ssh/id_rsa.pub
ssh vagrant@localhost -p 2222
(密码:vagrant) ls -la
cd .ssh
-
chmod 0600 ~/.ssh/authorized_keys
-
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.
-
当系统提示您input要保存密钥的文件时,请按Enter键。 这接受默认的文件位置。
input要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按回车键]
-
在提示符下,input安全密码。 如果您不需要密码,您可以保留空白并按下回车键。
input要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按回车键]
-
连接到您的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)?
-
现在build立一个SSH连接types:$ vagrant ssh
-
将主机公钥复制到Vagrant VM中的authorized_keys文件中。 为此,进入“Users / [you] /。ssh”文件夹,将主机中id_rsa.pub文件中的内容复制到Vagrant虚拟机中的“〜/ .ssh / authorized_keys”文件中。
- 更改Vagrant VM中的SSH文件夹和authorized_keys文件的权限
- 重新启动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
参考提交
这是我为了解决这个问题而采取的所有正确步骤。
这是我遵循的步骤
- 创build一个文件夹。 例如F:\ projects
- 在git bash中打开这个文件夹并运行这个命令ssh-keygen -t rsa -b 4096 -C“your_email@example.com”(把一个有效的电子邮件地址)
- 然后在项目文件夹中的两个单独的文件中生成密钥对。 例如项目(私钥文件),project.pub(公钥文件)
- 转到此位置C:\ Users \ acer.vagrant.d并find文件insecure_private_key
- 获取文件的备份并复制新创build的私钥的内容并粘贴到insecure_private_key文件中。 然后复制insecure_private_key并将其粘贴到这个位置。
- 现在在你的项目地点stream浪。 产生上面问题typesvagrant ssh并进入给用户名,密码。 (默认的用户名和密码设置为stream浪)
- 进入这个位置cd /home/vagrant/.ssh并键入mv authorized_keys authorized_keys_bk
- 然后键入ls -al并键入vi authorized_keys以打开authorized_keys文件vi编辑器。
- 从notepad ++(project.pub)打开生成的公钥然后复制内容然后在git bash上按i在vi编辑器中启用插入模式并右键单击并粘贴。 按下转义键退出插入模式
- :WQ! 保存文件并inputls -al
- 然后权限设置如下,不需要改变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
- 最后再跑上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 #