我正在使用 vagrant 在我的个人笔记本电脑(Windows 10)上运行一些虚拟机。
我已经在这台笔记本电脑上安装了 ubuntu 14.04 和 centos,一切运行正常。
今天我尝试为 ubuntu 16.04 安装新的盒子,我简单地执行了:
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
几秒钟后,虚拟机启动了,vagrant 写了以下消息:
Vagrantfile
已将A放置在此目录中。您现在准备好
vagrant up
您的第一个虚拟环境!请阅读Vagrantfile 中的注释以及
vagrantup.com
有关使用 Vagrant 的更多信息。使用“virtualbox”提供程序启动机器“默认”...
==> 默认:无法找到 Box 'ubuntu/xenial64'。正在尝试查找并安装...
默认:Box 提供商:virtualbox
默认值:Box 版本:>= 0
==> 默认:加载框“ubuntu/xenial64”的元数据
默认:网址:https://atlas.hashicorp.com/ubuntu/xenial64
==> 默认:为提供商添加框“ubuntu/xenial64”(v20160420.3.0):virtualbox
默认:正在下载: https://atlas.hashicorp.com/ubuntu/boxes/xenial64/versions/20160420.3.0/providers/virtualbox.box
默认:进度:100%(速率:2648k/s,预计剩余时间:--:--:--)
==> 默认:已成功为‘virtualbox’添加了框‘ubuntu/xenial64’(v20160420.3.0)!
==> 默认:导入基本框“ubuntu/xenial64”...
==> 默认:匹配 NAT 网络的 MAC 地址...
==> 默认:检查框“ubuntu/xenial64”是否是最新的……
==> 默认:设置虚拟机的名称:ubuntu-xenial-16.04-cloudimg
==> 默认:修复 22 => 2222 的端口冲突。现在在端口 2200。
==> 默认:清除任何先前设置的网络接口...
==> 默认:根据配置准备网络接口...
默认:适配器 1:nat
==> 默认:转发端口...
默认值:22(来宾)=> 2200(主机)(适配器 1)
==> 默认:运行“预启动”VM 定制...
==> 默认:启动 VM...
==> 默认:等待机器启动。这可能需要几分钟...
默认:SSH 地址:127.0.0.1:2200
默认:SSH 用户名:ubuntu
默认:SSH 身份验证方法:密码
默认:
默认:在访客中插入生成的公钥……
默认:如果存在不安全的密钥,则从客户机中删除它……
默认:密钥已插入!断开连接并使用新的 SSH 密钥重新连接...
==> 默认:机器已启动并准备就绪!
==> 默认:检查 VM 中的客户添加情况...
如你所见,因为我已经在运行另一个虚拟机(我无法停止),所以 vagrant 使用了不同的 ssh 端口,而不是默认的 2222。
当我尝试使用 putty 访问服务器时,出现以下错误:
断开连接:服务器协议违规:意外的 SSH2_MSG_UNIMPLEMENTED 数据包
我知道我可以使用“vagrant ssh”访问虚拟机。我已经这样做了,但考虑到我在 Windows 上,我更喜欢使用 putty。
编辑 我停止了另一台虚拟机并重新启动了现在使用默认端口的 xenial 盒,但仍然出现相同的错误。
答案1
当我尝试访问Ubuntu 16.0.4 LTS Server
全新安装且仅选择 OpenSSH 作为附加软件时,我遇到了同样的问题。我使用的是旧版 2013 版 PuTTY。
当我下载并使用“PuTTY 最新开发快照”。