888 字
4 分钟
SSH 远程管理进阶:密钥登录、端口转发与 tmux 会话保持

SSH 是每个 Linux 用户每天都用的工具,但多数人只用了它 10% 的能力。本文讲三件能立刻提升效率和安全的事:密钥认证、端口转发、tmux 会话保持。

第一步:换掉密码登录#

密码登录暴露在公网上,等于把门交给全世界的爆破脚本。密钥认证则是「你有一把私钥,服务器存着公钥」,即使密码泄露也进不来。

Terminal window
# 本地生成密钥(ed25519 是当前推荐算法,更短更快)
ssh-keygen -t ed25519 -C "alice@laptop"
# 把公钥推送到服务器(仍需密码登录一次)
ssh-copy-id [email protected]

验证 ssh [email protected] 免密登录成功后,再修改服务器 /etc/ssh/sshd_config 加固:

PasswordAuthentication no # 关闭密码登录
PermitRootLogin no # 禁止 root 直连
PubkeyAuthentication yes

私钥设置强口令(passphrase)+ ssh-agent 缓存,兼顾安全与便利:

Terminal window
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519 # 输一次口令,本次会话内免密

免敲长命令:~/.ssh/config#

本地 ~/.ssh/config 可以给每台服务器起别名、指定端口和密钥:

Host prod
HostName 203.0.113.20
User alice
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host db-via-prod
HostName 10.0.1.15
User dba
ProxyJump prod

之后 ssh prod 即可登录;ssh db-via-prod 通过 prod 作跳板直连内网数据库服务器——ProxyJump(-J)替代了手动两段跳转。

端口转发的三种形态#

本地转发(-L):把远端服务「搬到」本地端口。场景:数据库只在服务器内网监听 3306,本地想用 GUI 客户端连接:

Terminal window
ssh -L 13306:127.0.0.1:3306 prod -N
# 本地连接 127.0.0.1:13306,流量经 SSH 隧道到 prod 的 3306

-N 表示只转发不开 shell。语义记忆:-L 本地端口:目标(从SSH服务器视角):目标端口。

远程转发(-R):把本地服务「暴露」给远端。场景:本地开发了一个 webhook 接收服务,想让外部测试环境回调:

Terminal window
ssh -R 9090:127.0.0.1:3000 prod -N
# 访问 prod 的 9090 端口 = 访问你本地的 3000

注意服务器默认只把转发端口绑在回环上,要对公网开放需服务端开启 GatewayPorts(谨慎评估暴露面)。

动态转发(-D):开一个 SOCKS5 代理,浏览器或 curl 的全部流量都经服务器出口:

Terminal window
ssh -D 1080 prod -N
curl --socks5 127.0.0.1:1080 https://ifconfig.me # 显示的是 prod 的出口 IP

断线不慌:tmux#

耗时任务(编译、导入数据、训练)最怕 SSH 断线——进程收到 SIGHUP 直接终止。tmux 让会话运行在服务器端,断线后重连再贴回去:

Terminal window
tmux new -s import # 新建名为 import 的会话
# 在会话里跑长任务;随时 Ctrl+b 然后按 d 脱离(detach)
tmux ls # 查看会话列表
tmux attach -t import # 重新接管

几个高频快捷键(前缀键 Ctrl+b 之后按):c 新建窗口、数字 切换窗口、% 左右分屏、" 上下分屏、[ 进入滚屏模式(q 退出)。

团队协作时 tmux attach 到同一会话还能实现「双人同屏排障」。

保持连接与断线重试#

网络不稳时,客户端定时发心跳防止 NAT/防火墙静默断连(写入本地 ~/.ssh/config):

Host *
ServerAliveInterval 30
ServerAliveCountMax 3

要求更高的场景可以用 mosh(基于 UDP,支持漫游和本地回显),在高铁、弱 Wi-Fi 下体验明显更好,但服务端需额外安装并放行 UDP 端口。

延伸阅读#

SSH 远程管理进阶:密钥登录、端口转发与 tmux 会话保持
https://meow.us.kg/posts/ssh-keys-tunnel-tmux/
作者
もゆちゃん
发布于
2026-09-25
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取