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
个文件。
粘贴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,但这并没有帮助。
答案 0 :(得分:160)
一般信息:默认为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
端口:2222)ssh-copy-id '-p 2222 root@127.0.0.1'
如果仍然无效,请尝试:
从insecure_private_key
c:\Users\USERNAME\.vagrant.d\insecure_private_key
个文件
运行vagrant up
(vagrant将生成一个新的insecure_private_key
文件)
在其他情况下,只需在<{strong> Vagrantfile
中设置forward_agent即可:
Vagrant::Config.run do |config|
config.ssh.forward_agent = true
end
<强>有用:强>
配置 git 可能与git-scm.com
配合使用设置此程序并创建个人系统私钥将位于您的个人资料路径中:c:\users\USERNAME\.ssh\id_rsa.pub
PS:最后 - 建议您查看Ubuntu on Windows 10
答案 1 :(得分:79)
以上都不适合我。不知何故,该框在vagrant用户 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
完成后退出VM并再次尝试vagrant ssh。它现在应该工作。
答案 2 :(得分:48)
如果您在vagrant 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工作正常。
答案 3 :(得分:40)
在来宾计算机/ VM中运行以下命令:
array (size=14)
'SCHEMA_NAME' => null
'TABLE_NAME' => string 'companies' (length=9)
'COLUMN_NAME' => string 'phonenumber' (length=11)
'COLUMN_POSITION' => int 13
'DATA_TYPE' => string 'int' (length=3)
'DEFAULT' => null
'NULLABLE' => boolean false
'LENGTH' => null
'SCALE' => null
'PRECISION' => null
'UNSIGNED' => null
'PRIMARY' => boolean false
'PRIMARY_POSITION' => null
'IDENTITY' => boolean false
然后做流浪汉停止。这将删除并重新生成您的私钥。
(这些步骤假设您已经创建或已经拥有主文件夹下的〜/ .ssh /和〜/ .ssh / authorized_keys目录。)
答案 4 :(得分:19)
根据我的经验,这对于新的流浪汉机器而言是一个令人惊讶的频繁问题。到目前为止,解决它的最简单方法是在客户端上手动创建所需的ssh密钥,而不是更改配置本身。然后使用主机上的私钥。
vagrant ssh
,使用默认密码vagrant
。ssh-keygen -t rsa -b 4096 -C "vagrant"
(as adviced by GitHub's relevant guide)。mv .ssh/id_rsa.pub .ssh/authorized_keys
。sudo service ssh reload
。cat .ssh/id_rsa
,绘制和复制(必须存在更好的方法,发明一个!) logout
。vagrant ssh-config
(查找实例ÌdentityFile“/ [...] / private_key”。nano /[...]/private_key
并从剪贴板粘贴,如果所有其他方法都失败。 ( 注意 ,但是,如果您的private_key不是项目特定的,但由多个流浪汉机器共享,您最好自己配置路径,以免完全打破其他工作机器!更改路径就像在Vagrant文件中添加一行config.ssh.private_key_path = "path/to/private_key"
一样简单。)此外,如果您使用的是PuPHPet生成的机器,则可以将私钥存储到文件{ {1}}它将自动添加到Vagrantfile的ssh配置中。puphpet/files/dot/ssh/id_rsa
现在应该可以使用。如果是这种情况,请祝贺您自己,vagrant ssh
,如果需要,请运行logout
并继续执行有意义的任务。
如果您仍然遇到问题,可以方便地将详细标志添加到ssh命令以简化调试。您可以在双击之后传递该(或任何其他选项)。例如,输入vagrant provision
。您可以随意添加任意数量的v,每个都会为您提供更多信息。
答案 5 :(得分:9)
如果您尝试强制您的VM默认使用root用户进行SSH,也会发生这种情况....
例如,Vagrantfile中的配置可能会导致此失败:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
解决方案:注释掉这些行,然后再试一次!
答案 6 :(得分:8)
问题我在我配置的盒子上收到了ssh身份验证错误。原来工作正常。
我遇到的问题是我错过了.vagrant/machines/default/virtualbox/private_key
中的私钥。我从原始框和Viola!的相同位置复制了私钥!
答案 7 :(得分:6)
我已经找到了解决Win 8.2上的密钥问题的方法,其中我没有成功使用此处提到的任何方法。可能有趣的是,VirtualBox,Vagrant和Box的完全相同的组合在Win 7 Ultimate上运行没有任何问题。
我通过在Vagrantfile中添加以下命令切换到密码验证:
More
请注意,我不确定这是否是唯一需要的更改,因为我已经这样做了:
我生成了一个新的RSA密钥对并相应地更改了authorized_keys文件(全部在虚拟机中,请参阅上面和其他地方的建议)
我将私钥复制到Vagrantfile所在的同一目录并添加了
config.ssh.password = "vagrant"
config.ssh.insert_key = false
但我相信这些变化无关紧要。我花了很多时间尝试,所以我没有改变工作配置的原因显而易见:)
答案 8 :(得分:4)
对我来说,这是通过更改vagrant home directort中的.ssh文件夹的权限(即“~vagrant / .ssh”)来解决的。我认为在为我的应用程序设置ssh密钥时,我搞砸了权限。
似乎'authorized_keys'文件必须仅为'vagrant'用户'rw',所以“chmod 600 authorized_keys”;目录本身及其父目录也是如此:
这样:
chmod 600 authorized_keys
chmod 700 .
chmod 700 ..
只有在我所有这些权限恢复后,流浪汉ssh才开始重新运作。
我认为这与ssh安全性有关。它拒绝识别证书,如果它们在当前用户之外可以访问,那么流浪者尝试登录就会被拒绝。
答案 9 :(得分:4)
如果您在VagrantFile中使用默认SSH设置,并且在崩溃后重新关联VM框后开始看到SSH身份验证错误,请尝试更换您的vagrant机器中的公钥。
由于安全原因,Vagrant会在每次注销时替换与不安全私钥对关联的公钥。如果未正确关闭计算机,公钥/私钥对可能会不同步,从而导致SSH身份验证错误。
要解决此问题,只需加载当前不安全的私钥,然后将公钥对复制到VM的authorized_keys文件中。
答案 10 :(得分:3)
这发生在我身上好几次,我解决它的方式是:
检查并确保您的Vagrantfile具有正确的私钥路径:
config.ssh.private_key_path =“/ home / razvan / .ssh / id_rsa”
执行&gt; linux终端中的vagrant ssh命令
在您的流浪汉机器上转到
cd /home/vagrant/.ssh
并检查authorized_keys文件中的ssh密钥是否与〜/ .ssh / id_rsa.pub中本地计算机上的ssh密钥相同。如果没有将 vagrant authorized_keys中的那个替换为〜/ .ssh / id_rsa.pub中本地计算机上的那个。
Reload Vagrant:
vagrant reload
希望这有助于其他人。干杯!
答案 11 :(得分:3)
@Component
输出:
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
#
答案 12 :(得分:3)
这可能是列表中的最后一个答案,但这对我有用,我没有在任何地方找到这个答案,经过2天的研究后我发现它是我自己的,所以如果没有别的办法可以做到这一点你会更好你到现在为止。
在我的情况下,问题来自我的VirtualBox。我不知道选项被禁用的原因是什么,应该已经启用了。
正如你在图片中看到的那样,我的VirtualBox存在一些网络问题,为了解决这个问题我必须做的就是选择我的机器,按设置,网络选项卡,然后确保选项Cable Connected已选中。在我的情况下,没有选择此选项,我在此步骤失败了:
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
首先我认为该端口已经在使用,之后我重新安装了Vagrant,我也尝试了其他的东西,但没有一个能为我工作。
答案 13 :(得分:2)
因为卡住了并且超时而无法运行流浪汉?
我最近发生了一次“笔记本电脑进水事件”,不得不迁移到一个新笔记本电脑(顺便说一下,在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 article那里得到了一点点修改-内德,你是冠军!
答案 14 :(得分:2)
确保您的第一个网络接口是NAT。当您构建盒子时,另一个第二个网络接口可以是您想要的任何东西。不要忘记Vagrant用户,如Google主题中所述。
祝你好运。答案 15 :(得分:1)
也无法超越:
默认:SSH身份验证方法:私钥
当我使用VirtualBox GUI时,它告诉我操作系统处理器不匹配。
为了让流浪者继续前进,在BIOS设置中我不得不反直觉地说:
禁用:虚拟化
启用:VT-X
尝试在BIOS中切换这些设置。
答案 16 :(得分: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.
当系统提示您“输入要保存密钥的文件”时,按Enter键。这接受默认文件位置。
输入要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按回车]
在提示符下,键入安全密码短语。如果您不需要密码短语,可以留空并按Enter键。
输入要保存密钥的文件(/Users/[you]/.ssh/id_rsa):[按回车]
按照以下命令连接到您的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)?
现在建立SSH连接类型:$ vagrant ssh
将主机公钥复制到Vagrant VM中的authorized_keys文件中。为此,请转到“Users / [you] /。ssh”文件夹,并将主机中id_rsa.pub文件中的内容复制到Vagrant VM中的“〜/ .ssh / authorized_keys”文件中。
答案 17 :(得分:1)
首先,您应该删除自动生成的insecure_private_key文件,然后键入
重新生成此文件vagrant ssh-config
然后
vagrant halt
vagrant up
应该有效
答案 18 :(得分:0)
当vagrant up命令运行时,我执行了所有正确的步骤来解决此问题。
这些是我遵循的步骤
************************这对我来说很精致***************** **************
答案 19 :(得分:0)
简单:
homestead destroy
homestead up
编辑(不像初个想法那么简单):
问题在于新版本的宅基地使用php7.0
和其他一些东西。为避免这种混乱,请确保在verison
中设置Homestead.yml
:
version: "0"
答案 20 :(得分:0)
我从2015年5月起使用Vagrant和Puphpet设置并遇到了这个问题。如果检测到不安全的密钥,生成的配置似乎不会处理Vagrant 1.7.4(或者可能稍早一点?)重新生成ssh密钥的行为。
我通过在我的Puphpet生成的Vagrantfile(本地设置)中添加以下内容来解决它&#34;如果是File.file?(customKey)&#34;子句:
WITH CTE AS(
SELECT *, rn = ROW_NUMBER() OVER(PARTITION BY cola ORDER BY id DESC)
FROM ta
)
SELECT
cola, colb
FROM CTE
WHERE rn <= 2
order by id
答案 21 :(得分: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
答案 22 :(得分:0)
只为那些像我一样白痴的人,或者他们的流浪汉机器发生了奇怪的事情。当您更改了vagrant用户主目录的权限(故意或偶然)时,也会发生此错误。
您可以使用密码('vagrant')登录(如其他帖子中所述),然后运行以下命令来修复权限。
sudo chown -R vagrant:vagrant /home/vagrant
然后您应该可以在不输入密码的情况下再次登录。
TL; DR:您的vagrant主文件夹的权限错误。
答案 23 :(得分:0)
在这里的所有回复中,有很多好东西要尝试。为了完整,如果你
ssh vagrant@localhost -p 2222
正如@Bizmate建议的那样,它失败了,请确保你有
AllowUsers vagrant
在你的客人/流浪汉机器的/etc/ssh/sshd_config
。
答案 24 :(得分: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"
...
不完美,但我可以继续我的生活。
答案 25 :(得分: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
希望这有帮助..
答案 26 :(得分:0)
我已启动机器,然后:
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
然后我跑了
{{1}}
机器从
启动答案 27 :(得分:0)
我在VM机器上尝试过
更改权限/ home / vagrant(在其上设置了chmod 700)
现在我可以直接放入我的盒子了
答案 28 :(得分:0)
如果您使用的是 windows 并且此问题意外出现,请在配置中尝试以下代码。
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
这基本上使用默认的 vagrant 配置。
答案 29 :(得分:0)
不过不确定你的情况和我的情况一样。
就我而言,vagrant ssh
密钥身份验证失败并要求输入密码。
我在我的 ~/.ssh/config
(文件顶部)中找到了我的 ole 设置。
PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa
删除此内容后,密钥身份验证开始工作。不再询问密码。