Vagrant ssh 不显示命令提示符

Joh*_*ohn 7 linux ubuntu windows virtualbox vagrant

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

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

sudo -i 告诉我 stdin: 不是 tty

你能看看吗,给我一个关于如何解决这个问题的想法?

小智 5

我正在运行 Windows 10 开发环境(cygwin/babun + mintty)并且在升级 Vagrant 后遇到了同样的问题。虽然我没有找到使用 vagrant ssh 解决问题的方法,但我确实找到了解决方法。

事实证明,我可以正常通过 ssh 进入虚拟环境。查看 Vagrantfile 中分配的 IP 地址,例如 172.0.0.101。如果使用命令:

ssh vagrant@172.0.0.101
Run Code Online (Sandbox Code Playgroud)

您应该能够输入密码“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"
}
Run Code Online (Sandbox Code Playgroud)

这允许您在每次滚动 Vagrant 框时重新配置您的配置。请注意,这将覆盖您当前设置的任何配置。您可以使用“>>”切换到追加,但是如果您经常滚动开发环境,最终会得到一个巨大的配置文件。显然,这不是适合所有人的解决方案。

不管怎样,新版本捆绑了这个不能通过 TTY 的 ssh 包是非常奇怪的。我不是一个足够强大的用户,无法理解原因,但至少可以确定问题。


sli*_*bbe 5

我在 Windows 10 Home 64bit 和 Creators Update、Vagrant 1.9.6、VirtualBox 5.1.22r115126 和 Cygwin 上遇到了同样的问题。在https://github.com/mitchellh/vagrant/issues之后,我读到这可能发生在 cygwin/babun/gitbash 而不是 cmd-prompt。

所以我用 Windows cmd-prompt 启动了另一个盒子,是的,我可以确认在 vagrant up 和 vagrant ssh 之后你会在你的盒子里收到提示。不理想,但暂时可行。

不知道是什么导致了这个,因为我很长时间没有更新 cygwin,它一直在使用 Vagrant 1.9.6 。

而不是使用 Windows cmd-prompt,更新到 Vagrant 1.9.7 也解决了这个问题,至少对我来说:)