我一直在解决 Vagrant 的问题,
$ vagrant ssh
OpenSSL version mismatch. Built against 100020ef, you have 1000106f
$
但是,如果我使用此提供的参数手动构建相应的 ssh 命令vagrant ssh-config
成功(或者,如果我这样做,则提供这些vagrant ssh --debug
:尝试连接之前的最后一行包含它使用的所有参数)。更令人费解的是,在 Virtualbox 主机和客户端机器上,openssh 和 OpenSSL 的版本匹配(不要被 ssh 和 OpenSSL 结果之间的 1.0.2n 和 1.1.1 不同,事实证明这些确实起作用)一起OK) - 关键是下面的命令在主机和客户端上给出相同的结果,
$ ssh -V
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
$ openssl version
OpenSSL 1.1.1 11 Sep 2018
这是在 Mint 19.3 - 所以基于 Ubuntu 18.04 的系统上。
事实上,我确实找到了答案,因此将其发布在下面,希望能帮助您避免浪费太多时间来追踪任何类似的问题。
(进一步测试后更新答案)
vagrant 二进制文件是问题所在。
我正在使用 Oracle 打包版本的 Virtualbox (6.1),使用他们的 repo(请参阅他们的 Virtualbox下载页面)而不是 Ubuntu 打包版本(当前版本为 5.2);我从https://www.vagrantup.com/downloads (vagrant_2.2.14_linux_amd64.zip) 下载了一个新的 vagrant 二进制文件,因为 Vagrant 的 Ubuntu repo 版本不适用于 VirtualBox 6.1。
经过测试,我发现最新版本的 vagrant 在这个环境中不起作用(由于上面的 OpenSSL 不匹配错误而失败),但有些可以(版本 2.2.7 到 2.2.10):低于 2.2.7 的版本不能使用 Virtualbox 6.1;高于 2.2.10 的版本会出现上述 OpenSSL 版本不匹配错误。
因此,两种可能的解决方案是(我都尝试过;两者都有效):
回覆。
sudo apt remove vagrant
安装 vagrant,我在下载和解压缩之前删除了旧的 Ubuntu 打包的 vagrant ( ),但如果您愿意,vagrant_2.2.10_linux_amd64.zip
也可以使用;.deb
我把它放在/usr/local/bin
可以找到它的地方,PATH
而不会被误认为是从.deb
.