Vagrant ssh 不显示命令提示符

Vagrant ssh 不显示命令提示符

我有一台运行 Windows 8.1 的计算机,对于某些项目,我使用 Vagrnat 和 VirtualBox,但是升级 VirtualBox 和 Vagrant 后,运行 Vagrant ssh 后,vagrant 不会显示命令提示符。我认为这可能是与旧盒子相关的问题,所以我创建了一个新的虚拟机,但结果是相同的。

如下所示,一些命令返回结果,一切正常

sudo -i 返回 stdin: 不是 tty

您能看一下并告诉我如何解决这个问题吗?

答案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 命令。

祝你好运!

相关内容