Windows 终端 SSH 保持连接

后知后觉 现有 4 评论

Windows 10 全新的 Powershell 内置了 ssh.exe 因此可以直接连接远程服务器,在 Windows Terminal 中连接 SSH 中若一段时间没有操作会导致连接断开,终端卡死。

引子

常见的终端工具(比如:Xshell)等都会内置 keepalive 功能,自动会发送心跳包来保持连接,但是 Windows Terminal 没有自带此功能。

处方

在用户家目录下创建 .ssh 文件夹,或者可以尝试连接 SSH 随意一个服务器即可自动创建此文件夹。

在其中创建配置文件 config ,写入以下两行。

Host *
    ServerAliveInterval 40

建议使用 Visual Studio Code 等软件写入,写入后效果如下。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\Kane> cat .\.ssh\config
Host *
    ServerAliveInterval 40

修改完毕后连接 SSH 后静置一段时间即可测试是否生效。


附录

参考链接

*How do I keep SSH connection alive on Windows 10? - stackoverflow

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。
  1. avatarImg YcLiebe

    添加config文件后,terminal ssh连接时会显示错误
    Bad owner or permissions on C:\Users\25927/.ssh/config
    这怎么办

    Chrome 89.0 Windows 10
    IP 属地 未知
    1. avatarImg
      @YcLiebe

      刚看了一下,和权限无关,应该是你的文件编码有问题,可以尝试用 Visual Studio Code 编译一个新文件,编码用 UTF-8 ,删掉之前的文件,保存一下试试。

      Firefox 87.0 Windows 10
      IP 属地 未知
      1. avatarImg YcLiebe
        @柒

        嗯,我去试试,谢谢!

        Chrome 89.0 Android 10
        IP 属地 未知
    2. avatarImg
      @YcLiebe

      文件权限需要为 600 ,可以使用命令 chmod 600 .ssh/config ,如果不清楚当前权限可以用 ls -lh 查看

      Chrome 89.0 macOS Big Sur
      IP 属地 未知