我有一台运行 Windows 8.1 的计算机,对于某些项目,我使用 Vagrnat 和 VirtualBox,但是升级 VirtualBox 和 Vagrant 后,运行 Vagrant ssh 后,vagrant 不会显示命令提示符。我认为这可能是与旧盒子相关的问题,所以我创建了一个新的虚拟机,但结果是相同的。
您能看一下并告诉我如何解决这个问题吗?
答案1
我在使用 Creators Update、Vagrant 1.9.6、VirtualBox 5.1.22r115126 和 Cygwin 的 Windows 10 Home 64bit 上也遇到同样的问题。下列的https://github.com/mitchellh/vagrant/issues我读到这可能发生在 cygwin/babun/gitbash 上,但不会发生在 cmd-prompt 上。
所以我用 Windows cmd-prompt 启动了另一个盒子,是的,我可以确认,在 vagrant up 和 vagrant ssh 之后,你会在你的盒子内收到提示。不太理想,但暂时可行。
不知道是什么原因造成的,因为我很长一段时间没有更新 cygwin,并且它一直在 Vagrant 1.9.6 上工作。
更新到 Vagrant 1.9.7 也可以解决这个问题,而不是使用 Windows cmd-prompt,至少对我来说是这样:)
答案2
我正在运行 Windows 10 开发环境(cygwin/babun + mintty),并且在升级 Vagrant 后遇到了同样的问题。虽然我还没有找到使用 vagrant ssh 解决问题的方法,但我确实找到了解决方法。
事实证明,我能够正常 ssh 进入虚拟环境。查看 Vagrantfile 中分配的 IP 地址,例如 172.0.0.101。如果您使用命令:
ssh [email protected]
您应该能够输入密码“vagrant”(vagrant 盒子的标准密码)并正常使用机器。据我了解,这与将 TTY 界面传递到终端窗口有关。 “vagrant ssh”的早期版本使用主机路径中的 ssh,但看起来较新的版本有一个嵌入的 ssh 版本,不能很好地与 Windows 环境配合使用(这是来自我昨天有限的经验和研究)。
如果您想在不使用用户名/密码组合的情况下进行访问,也有一个快速解决方法。我在 .babunrc 文件中创建了以下函数,但我想任何 .bashrc 或 .bash_profile 都可以工作:
# Vagrant ssh-config to file
function devConfig () {
vagrant ssh-config > "PATH TO YOUR SSH CONFIG FILE"
}
这允许您在每次滚动 Vagrant 框时重新配置您的配置。请注意,这将覆盖您当前设置的任何配置。您可以使用“>>”切换到附加,但是如果您经常滚动开发环境,您最终会得到一个巨大的配置文件。显然,这不是一个适合所有人的解决方案。
无论如何,令人非常好奇的是,较新的版本捆绑了这个无法传递 TTY 的 ssh 包。我不是一个足够强大的用户,无法理解为什么,但至少可以确定问题。
答案3
试试这个:(用简单的人类非技术英语)
- Windows 用户总是默认使用管理权限打开命令提示符,因为我们只使用 cmd 来修复 Windows 问题。
- Vagrant 似乎更喜欢您通过单击图标打开 cmd 并直接进入显示的主目录( C:\Users\yourName )。
所以:
- 如果您以这种方式使用 cmd,则所有 vagrant 命令都可以工作。
- 如果您在以管理员身份登录后尝试导航到主目录,则会发现您处于受限区域,我发现该区域有时会阻止 Vagrant 命令。
祝你好运!