Skip to main content

SSH 的技巧

SSH 连接 通过命令行的方式,安全地远程连接并控制另一台电脑或者服务器。同时具有跨系统,安全,高效的特点。


(一)连接到 Windows 系统

(1)配置

(2)免密登录

(二)连接到 Ubuntu 系统

(1)配置

(2)免密登录

首先进入被控制的 Linux 用户根目录,创建 SSH 目录

cd ~
mkdir .ssh
chmod 700 .ssh

注意这个目录是 /home/heihe, 而不是 / !

在控制端 生成过秘钥

ssh-keygen -t rsa -b 4096

该秘钥被保存在 C:\Users\[用户名]\.ssh 路径下,

image-20250307142038444

我们需要把公钥 id_rsa.pub上传到被控端的 ~/.ssh/authorized_keys 文件中

上传完成后赋予可执行权限

chmod 600 ~/.ssh/authorized_keys

启用相关配置

vim  /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

重启被控端服务器的 SSH

sudo systemctl restart ssh

现在就可以免秘钥登录了

如果要添加第二个控制端,只要在 ~/.ssh/authorized_keys 文件中 换行添加另一个秘钥即可。一个机器一行

(三)保持长连接

(1)服务器端设置

打开并编辑服务器上的 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

添加或修改以下两项:

ClientAliveInterval 60
ClientAliveCountMax 10

解释:

  • ClientAliveInterval 60:每隔 60 秒,服务器向客户端发送一次“心跳包”。
  • ClientAliveCountMax 10:如果连续 10 次没有收到客户端响应,才断开(总共等待 10 分钟)。

设置后需重启 SSH 服务使其生效:

sudo systemctl restart ssh

(2)客户端设置

如果你是通过 Windows 资源管理器映射网络驱动器

  1. 改用命令行 net use 显式建立持久连接:
net use Z: \\sshfs.r\heihe@172.27.50.28 /persistent:yes
  • sshfs.r 是 SSHFS-Win 的驱动程序前缀。
  • /persistent:yes 表示每次重启自动重新挂载。
  1. 确保 Windows 防火墙不会阻断空闲连接
  • 控制面板 → Windows 防火墙 → 允许程序 → 允许 SSHFS-WinWinFsp 通信。
  1. 关闭 Windows 电源优化选项
  • 控制面板 → 电源选项 → 当前计划设置 → 更改高级电源设置。
    • 网络适配器 → 节能模式:设置为最大性能
    • 睡眠 → 睡眠后:从不
    • USB 设置 → USB选择性挂起设置:禁用

(3)替代挂载方式

你可以不使用资源管理器挂载,而使用更可靠的命令行 SSHFS:

安装 WinFsp 和 SSHFS-Win CLI 版本:

官方下载链接:

安装后,在管理员终端中运行:

sshfs heihe@172.27.50.28:/ Z: -o reconnect,ServerAliveInterval=60,ServerAliveCountMax=10

关键参数说明:

  • -o reconnect:自动重连
  • ServerAliveInterval=60:每 60 秒发送心跳包
  • ServerAliveCountMax=10:容忍最多 10 次无响应

你可以把这个命令写进 .bat 批处理文件,每次开机运行自动挂载。


(4)最终保障措施

你还可以设置一个计划任务,每隔一段时间访问一次挂载盘(如读取某个小文件),防止系统认为你在“空闲”。

例如写一个 .bat 文件如下内容:

type Z:\keepalive.txt > nul

然后用 Windows 计划任务每 5 分钟运行一次这个脚本。