【问题标题】:Vagrant/Laravel Homestead SSH - Can't type/freezing after a certain timeVagrant/Laravel Homestead SSH - 一段时间后无法输入/冻结
【发布时间】:2015-11-08 19:43:38
【问题描述】:

这个问题线程很好地解释了我遇到的问题,尽管它与单个 cmd 客户端无关: https://github.com/bliker/cmder/issues/347#issuecomment-111849036

这是一个 Laravel Homestead 实例,我正在运行 Homestead 2.1.6,我目前拥有最新版本的 Laravel/Homestead box、Vagrant、VirtualBox(用于修复 Windows 10 的一个单独问题)。

基本上,当我使用“homestead ssh”通过 SSH 连接到 VM 时,除非我主动输入命令提示符,否则它会在大约 30 秒不活动后超时。窗口保持打开状态,但不再接受任何输入,除了上面链接中提到的退出序列。

这使得作曲家更新几乎不可能(除非我输入随机字符以保持连接有效)。

我已经尝试了多个命令行客户端(windows cmd、git bash、cmder),我已经多次安装了不同版本的 VirtualBox 和 Vagrant,我尝试使用单独的 OpenSSH 实例进行连接,我已经尝试过ServerAliveInterval 建议,我仍然遇到这个问题。

在我的 PC(也是 Windows 8.1)上很好,但在我现在在 Windows 10 上运行的 Windows 8.1 笔记本电脑上,我无法让它正常工作。

有什么想法吗?

编辑:正如我在下面的 cmets 中提到的,我在 ~/.ssh/ 和 cmder 的 config 目录中的一个名为 config 的文件中尝试了 ServerAliveInterval 命令。这对 Windows 是否正确?我可以检查是否正在使用此配置吗?

【问题讨论】:

    标签: windows ssh vagrant virtualbox homestead


    【解决方案1】:

    这可能是 SSH 配置中 ServerAliveInterval 的一般问题。 我没有使用 Windows,所以我不知道ssh_config 文件在哪里(如果有)。如果你能找到它,请设置如下内容: ServerAliveInterval 10

    我也在启用此设置:ForwardAgent yes

    【讨论】:

    • 我提到我尝试了 ServerAliveInterval 无济于事。我在“~/.ssh/config”文件中有这个,其中 ~ 指的是我的用户目录。我添加了 ForwardAgent 行,但没有区别。如果有人可以确认以上是 Windows 上的正确文件名/位置,将不胜感激!
    • 我也尝试了cmder config目录,发现它可能一直在那里但完全相同。
    【解决方案2】:

    我遇到了同样的问题,尽管它只发生在特定的网络上。与他们的 ISP 的 DNS 提供商有关。

    我通过using Google's public DNS servers8.8.8.8修复了它。

    值得一试。

    【讨论】:

    • 不幸的是它没有用。我正在使用 wifi(我的笔记本电脑上没有 lan 端口),所以我将 dns 更改应用到该适配器,但没有发现任何区别。
    【解决方案3】:

    原来我描述的冻结是在 Windows 上使用“homestead ssh”命令时出现的问题。

    这里有描述:http://stagerightlabs.com/blog/running-homestead-2-on-windows

    运行“vagrant up”工作正常(一旦我使用“vagrant up”重建机器)。这个问题让我发疯了!

    【讨论】:

      【解决方案4】:

      如本页所示:http://www.solarpolar.co.uk/laravel-homestead-setup-on-windows-7/ 这可以通过使用 vagrant 来规避。

      首先输入vagrant global-status,然后会显示虚拟机列表:

      $ vagrant global-status
      id       name    provider   state   directory
      --------------------------------------------------------------------------------------------------------
      4d0a8c6  default virtualbox saved   C:/CarlosPC/vagrant_getting_started
      57a7a6a  default virtualbox running C:/Users/CarlosPC/AppData/Roaming/Composer/vendor/laravel/homestead
      

      注意宅基地虚拟机的id,在本例中为57a7a6a

      其次,你用vagrant ssh命令和上面提到的id ssh,像这样:

      vagrant ssh 57a7a6a
      

      完成了!不再冻结。

      【讨论】:

        【解决方案5】:

        正如卡洛斯所说,您可以使用:

        vagrant ssh {vagrant_id}
        

        或者您可以创建一个别名并使用单个命令而不知道 vagrant_id。

        vi ~/.bashrc
        

        将这些行粘贴到:

        alias homestead_ssh="homesteadSsh"
        function homesteadSsh(){
                vagrant ssh $(vagrant global-status | grep homestead | awk '{print $1}')
        }
        

        保存并运行它以应用更改

        . ~/.bashrc
        

        现在您可以在终端中简单地使用 homestead_ssh。

        【讨论】:

          猜你喜欢
          • 2015-02-27
          • 2017-05-05
          • 1970-01-01
          • 2015-09-14
          • 1970-01-01
          • 2014-09-09
          • 2017-04-25
          • 2015-01-31
          • 1970-01-01
          相关资源
          最近更新 更多