流浪 ssh 身份验证失败

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。

我在宾客席上执行了以下步骤:

  • All Users启用 Remote Login

  • 创建具有 0700权限的 ~/.ssh目录。

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

  • 粘贴这个公钥 进入 ~/.ssh/authorized_keys

我还尝试使用私有(主机)网络代替公共(桥接)网络,在 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,但仍然无法验证。

我也尝试重建盒子,并重新检查以上所有。

它看起来像 其他人在这种配置上取得了成功,所以一定有什么我做错了。

找到了这条线和启用的 GUI,但这并没有帮助。

211740 次浏览

确保你的第一个网络接口是 NAT。另一个网络接口可以是您在构建框时想要的任何东西。不要忘记流浪者用户,正如在 Google 帖子中所讨论的那样。

祝你好运。

有关一般信息: 默认情况下可以简单地使用 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

第二,做: 使用您的个人系统 < em > 私钥的内容更改文件 insecure_private_key的内容

或使用: 把它添加到流浪汉档案:

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. 不要忘记将您的公钥添加到流浪虚拟机上的 ~/.ssh/authorized_keys。您可以通过复制粘贴或使用类似于 Ssh-copy-id的工具(用户: root密码: vagrant端口: 2222) ssh-copy-id '-p 2222 root@127.0.0.1'来完成

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

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

  2. 运行 vagrant up(流浪者将生成一个新的 insecure_private_key文件)

在其他情况下,将 前进代理设置为 Vagrantfile是有帮助的:

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

有用的:

配置 饭桶可以使用 Git-scm.com

在设置这个程序和创建个人系统 私人钥匙将在您的配置文件路径: c:\users\USERNAME\.ssh\id_rsa.pub

PS: 最后-建议你在 Windows 10上查看 Ubuntu

问题是我在我提供的机器上获得 ssh 身份验证错误,原来的机器工作正常。

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

对于我来说,这是通过更改。Ssh 文件夹中的流浪者主目录(即“ ~ 流浪者/。Ssh”)。我想我在为应用程序设置 ssh 密钥时弄错了权限。

看起来,‘ authored_ keys’文件只能是‘ rw’用于‘流浪者’用户,因此“ chmod 600 authored_ keys”; 同样的道理也适用于目录本身及其父目录:

所以:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

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

我认为这与 ssh 安全性有关。它拒绝承认证书,如果他们是任何方式以外的当前用户访问,所以流浪者尝试登录因此被拒绝。

如果您试图强制 VM 在默认情况下为 SSH 使用 root 用户,也会发生这种情况... ..。

例如,在你的 Vagrantfile 中一个这样的配置可能会导致这个失败:

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

解决方案: 注释掉这些行,然后再试一次!

以上这些对我来说都不管用。不知怎么的,这个盒子在流浪用户 密钥授权文件中添加了错误的公钥。

如果您仍然可以使用流浪者密码(密码是流浪者) ssh 对话框,即。

ssh vagrant@localhost -p 2222

然后使用下面的命令将公钥内容从 https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub复制到    經權 _ keys 文件

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

完成退出 VM 后,再次尝试流浪 ssh。现在应该可以工作了。

如果您在 VagrantFile 中使用默认的 SSH 设置,并且在因为崩溃而重新关联 VM 框之后开始看到 SSH 身份验证错误,请尝试替换您的流浪计算机中的公钥。

由于安全原因,每次注销时,“流浪”将替换与不安全私钥对相关联的公钥。如果您没有正确地关闭您的计算机,公钥/私钥对可能会失去同步,从而导致 SSH 身份验证错误。

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

在客机/VM 中运行以下命令:

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

然后做流浪停止。这将删除和重新生成您的私人钥匙。

(这些步骤假设您已经在主文件夹下创建或已经拥有 ~/. ssh/和 ~/. ssh/authored_ keys 目录。)

那么,我已经启动了机器:

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)
  • 虚拟框5.0.8 r103449
  • 流浪汉1.7.4

在这里的所有回答中,有很多好的东西可以尝试

ssh vagrant@localhost -p 2222

就像@Bizmate 建议的那样,如果它失败了,那么一定要这么做

AllowUsers vagrant

在你的客人/流浪汉机器的 /etc/ssh/sshd_config里。

我已经找到了一种方法来解决 Win 8.2中的关键字问题,我在这里提到的任何方法都没有成功。有趣的是,完全相同的 VirtualBox、 Vagrant 和 box 组合在 Win 7 Ultimate 上运行却没有任何问题。

我在 Vagrantfile 加入了以下命令,切换到密码认证:

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

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

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

  2. 我将私钥复制到 Vagrantfile 所在的同一目录并添加

     config.ssh.private_key_path = "./id_rsa"
    

But I believe that these changes were irrelevant. I spent a plenty of time trying, so I did not change the working configuration by obvious reasons :)

我使用流浪与木偶设置从2015年5月,并有这个问题。似乎生成的配置没有处理 Vagrant 1.7.4(或者更早一点?)如果检测到不安全的密钥,则重新生成 ssh 密钥的行为。

我通过在“ if File.file? (customKey)”子句中的 Puppet 生成的 Vagrantfile (本地设置)中添加以下内容来解决这个问题:

config.ssh.insert_key = false

引用提交

这是所有正确的步骤,我所遵循的修复这下面的问题发生时,流浪者向上命令运行。

这是我遵循的步骤

  1. 创建一个文件夹
  2. 在 gitbash 中打开此文件夹并运行此命令 Ssh-keygen-t rsa-b 4096-C“ your _ email@example.com”(输入一个有效的电子邮件地址)
  3. 然后在项目文件夹中的两个独立文件中生成密钥对。Project (私钥文件)、 project.pub (公钥文件)
  4. 转到这个位置 C: Users acer.vasrant.d 并查找 file 不安全的 _ 私有的 _ 密钥
  5. 获取该文件的备份,并复制新创建的私钥的内容,然后将其粘贴到 security _ private _ key 文件中。然后复制 security _ private _ key 并粘贴到这个位置。
  6. 现在流浪汉在你的项目位置。生成以上问题后输入流浪者 ssh 并进入给出用户名、密码。(默认情况下,用户名和密码设置为流浪汉)
  7. 进入这个位置 cd/home/vasrant/. ssh 并键入 mv  委托 _ keys   權 _ keys _ bk
  8. 然后键入 ls-al,并为打开的    文件 vi 的编辑器键入 vi  已經授權 _ key。
  9. 从记事本 + + (project.pub)打开生成的公钥并复制内容 然后在 gitbash 上按 i,在 vi 编辑器上启用插入模式,然后右键单击并粘贴。按退出键后退出插入模式
  10. : wq! 用于保存文件并键入 ls-al
  11. 然后权限设置如下,不需要更改 2个流浪汉40962月13日15:33。 4个流浪汉2月13日14:04。 1个流浪汉2月13日14:26授权钥匙 - rw ——-. 1 root 根409 Feb 1313:57 authored_ keys _ bk - rw ——-. 1流浪汉1月2日23:09 否则,键入 chmod 600 Authored_ keys,并键入这个命令 too chown 流浪者: 流浪者 Authored_ keys
  12. 最后跑流浪汉停下来,又跑流浪汉上来。

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

首先,您应该删除自动生成的 security _ private _ key 文件,然后通过键入

vagrant ssh-config

那么

vagrant halt
vagrant up

应该可以

也无法超越:

Default: SSH auth 方法: 私钥

当我使用 VirtualBoxGUI 时,它告诉我操作系统处理器不匹配。

为了让流浪者进一步发展,在 BIOS 设置中,我不得不违反直觉:

禁用: 虚拟化

启用: VT-X

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

这种情况在我身上发生过好几次,我的解决方法是:

  1. 检查并确保你的流浪汉文件有正确的私钥路径:

    Private _ key _ path = “/home/razvan/. ssh/id _ rsa”

  2. 在 Linux 终端中执行 > 流浪 ssh 命令

  3. 在你的流浪汉机器上

    光盘/家/流浪汉/. ssh

然后检查   已授權 _ keys 文件中的 ssh key 是否和您在 ~/中的本地機器上的 ssh key 相同。Ssh/id _ rsa.酒吧。如果没有用 ~/中找到的 本地机器本地机器上的密钥替换 流浪汉 Authored_ key 中的密钥。Ssh/id _ rsa.酒吧。

  1. 流浪汉:

    流浪汉装弹

希望这能帮到别人,干杯!

就为了那些像我一样的傻瓜,或者他们的流浪机器发生了奇怪的事情的人。当您更改流浪用户的主目录的权限时(有意或无意) ,也可能发生此错误。

您可以使用密码(“流浪者”)登录(如其他文章所述) ,然后运行以下命令来修复权限。

sudo chown -R vagrant:vagrant /home/vagrant

然后,您应该能够再次登录,而无需输入密码。

TL; DR: 对您的流浪者主文件夹的权限是错误的。

根据我的经验,这种情况在新的流浪者机器中出现得非常频繁。到目前为止,解决这个问题最简单的方法是在客户机上手动创建所需的 ssh 密钥,然后在主机上使用私有密钥,而不是修改配置本身。

  1. 登录流浪汉机器: vagrant ssh,使用默认密码 vagrant
  2. 创建 ssh 键: 例如,ssh-keygen -t rsa -b 4096 -C "vagrant"(正如 GitHub 的相关指南所建议的那样)。
  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、绘制和复制(必须有更好的方法,去发明一种吧!).
  6. 从流浪汉机器退出: logout
  7. 查找流浪者使用的当前私钥,通过查看其配置: vagrant ssh-config(查找实例 ÌentityFile“/[ ... ]/private _ key”。
  8. 将当前的私钥替换为您在主机上创建的私钥: 例如,nano /[...]/private_key,如果所有其他操作都失败,则从剪贴板粘贴。(但是,如果您的私钥不是特定于项目的,而是由多个流浪机器共享的,那么您最好自己配置路径,以免破坏其他工作正常的机器!更改路径非常简单,只需在 Vagrantfile 中添加一行 config.ssh.private_key_path = "path/to/private_key"即可。此外,如果您正在使用 PuPHPet生成的机器,您可以存储您的私钥来文件 puphpet/files/dot/ssh/id_rsa,并且它将自动添加到 Vagrantfile 的 ssh 配置中。
  9. 测试设置: vagrant ssh现在应该可以工作了。

如果是这样的话,祝贺你自己,logout,如果需要运行 vagrant provision,并继续手头有意义的任务。

如果您仍然面临问题,那么可以向 ssh 命令添加详细标志,以便于调试。您可以在双破折号之后传递该选项(或任何其他选项)。例如,输入 vagrant ssh -- -v。你可以随意添加任何你需要的访客,每个访客都会给你更多的信息。

简单:

homestead destroy
homestead up

编辑(不像第一个想法那么简单) :

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

version: "0"

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

我通过在 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

Mac 解决方案:

  1. 将本地 ssh id _ rsa 密钥添加到流浪私钥

    Vi/用户//. 漂泊者/机器/缺省/虚拟机/私有密钥

    /Users//. ssh/id _ rsa

  2. 复制流浪盒子上的公钥/Users//. ssh/id _ rsa. pub 

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

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

问题解决了。

多亏了

我用以下方式解决了这个问题。 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.
  1. 当系统提示您“输入要保存密钥的文件”时,按 Enter。它接受默认的文件位置。

    输入要保存密钥的文件(/Users/[ you ]/. ssh/id _ rsa) : [按回车键]

  2. 在提示符下,键入安全密码短语。如果不需要密码,可以留空并按回车键。

    输入要保存密钥的文件(/Users/[ you ]/. ssh/id _ rsa) : [按回车键]

  3. 要连接到您的流浪 VM 类型如下命令

    Ssh 漂流者@localhost-p 2222

当您得到以下消息时,键入“ yes”并按回车。

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. 现在建立一个 SSH 连接类型: $varantssh

  2. 将主机公钥复制到 VagrantVM 中的 authored_ keys 文件中。为此,请访问“ Users/[ you ]/。“ ssh”文件夹并复制 id _ rsa 中的内容。在主机上发布文件,然后转到“ ~/”。Vagrant VM 中的 ssh/Authorized_ keys”文件。

  3. 更改 VagrantVM 中 SSH 文件夹和 authored_ keys 文件的权限
  4. 重新启动流浪汉: $流浪汉重新装载

这可能是列表中的最后一个答案,但是这个对我有用,我在任何地方都没有找到这个答案,经过2天的研究,我自己找到了它,所以如果没有其他对你有用的东西,你最好尝试一下这个。

在我的例子中,问题来自我的 VirtualBox。我不知道是什么原因禁用了一个选项,它应该已经启用。

enter image description here

正如你在图片中看到的,我的 VirtualBox 有一些网络问题,为了解决这个问题,我必须做的是选择我的机器,按下设置,网络选项卡,然后确保选择有线连接。在我的情况下,这个选项没有被选中,我在这个步骤中失败了:

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

起初我以为这个端口已经在使用了,后来我重新安装了 Vagrant,我还尝试了其他一些东西,但没有一个对我有用。

这几天我一直在琢磨这个重新包装的盒子。(Mac OS X,El Capitan)

按照@Radek 的步骤,我对源代码框进行了“流浪 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"
...

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

另一个简单的解决方案是,在 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. 在主机中找到私钥:

vagrant ssh-config
#

产出:

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

2. 将私钥路径和端口号存储在变量中:

在上面的输出中使用以下两个命令:

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
#

无法运行流浪汉,因为它被卡住和超时?我最近遇到了一个“笔记本电脑进水事件”,不得不迁移到一个新的事件(顺便说一下,在 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...

它无法验证,重试了一次又一次,最终放弃了。


这就是我如何通过三个步骤让它恢复原状的:

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 <path-to-insecure_private_key>

它会输出这样的东西:

ssh-rsa AAAAB3Nyc2EAAA...9gE98OHlnVYCzRdK8jlqm8hQ==

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)
...

注意: 如果流浪客被配置为不允许密码验证,你需要打开 VBox 的 GUI,双击客户名,登录为 vagrant/vagrant,然后 sudo -s和编辑 /etc/ssh/sshd_config并查找 PasswordAuthentication no行(通常在文件的末尾) ,用 yes替换 no并重新启动 sshd (即 systemctl reload sshd/etc/init.d/sshd restart)。

4-将公钥添加到 /home/vagrant/authorized_keys文件。

$ echo "ssh-rsa AA2EAAA...9gEdK8jlqm8hQ== vagrant" > /home/vagrant/.ssh/authorized_keys

5-退出(CTRL + d) ,停止流浪客,然后把它带回来。

重点 如果您使用任何供应工具(如 Anable 等) ,请在重新启动客人之前使用 关闭,因为流浪汉会认为您的客人由于使用了不安全的私钥而没有供应。它将重新安装密钥,然后运行您的供应商!

$ vagrant halt
$ vagrant up

希望你们现在能举起双手。

我得到了这个,只是一个小修改,从内德巴切尔德斯 文章-内德你是一个冠军!

如果您正在使用 窗户,并且意外发生此问题,请在配置中尝试以下代码。

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

这基本上使用默认的流浪者配置。

不过我不确定你的案子和我的是否一样。 在我的案例中,vagrant ssh密钥认证失败,要求输入密码。 我在 ~/.ssh/config中找到了我的旧设置(在文件的顶部)。

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

删除这个之后,密钥认证开始工作,不再需要输入密码。

加上我的解决方案:

rm /Users/myusername/.ssh/config
vagrant ssh-config >> /Users/myusername/.ssh/config

与这里提出的其他解决方案有些相似。

假如「上水通知书」转到「流浪者通知书」 ,你可以把「 Vagrantfile 通知书」改为「流浪者通知书」 ,然后进入「流浪者通知书」

vb.gui = true

再次输入 流浪汉流浪汉作为密码。

在 VM 中,可以检查 的日志。这个 链接的下一个命令是帮助:

tail -n 500 /var/log/auth.log | grep 'sshd'

在我的例子中,我不小心改变了主目录和子目录的所有权和模式,但是一旦进入虚拟机,下面的命令就不起作用了:

sudo chmod -R 700 /home/vagrant/.ssh
sudo chmod 600 /home/vagrant/.ssh/authorized_keys
sudo chown -R vagrant:vagrant /home/vagrant/.ssh

我尝试在 Host (ssh 客户机)中生成一个新的密钥对,然后复制(使用一个 python web 服务器,正如 Jerzy Pawlikowski 在这个 链接中所解释的那样)公钥到 guest VM (ssh 服务器)中,但是也没有成功。 最后,我不得不摧毁虚拟机,在我看来,这不是一个真正的解决方案:

vagrant destroy

然后,我再次推出了这台新机器:

vagrant up

在创业时,我注意到了以下日志:

default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...

因此,我提出的解决方案不是摧毁 VM,而是将正确的所有权和模式赋予 VM 中的 ssh 目录,并删除所有键(包括 VM 和 Host 中的键) ,这样 Vagrant 只能签出 不安全的钥匙并自己生成一个新的密钥对。也可以看看这个关于 Insert _ key链接,另一个 链接解释了 JuPlutonic 公司的类似程序,以及 mtchavez 公司的最后一个 链接