会用 ssh root@IP 连服务器只是入门。SSH其实是个功能强大的工具——端口转发、隧道、跳板机、配置管理,掌握这些进阶技巧,能大幅提升你管理多台服务器的效率。本文精选最实用的几个,配合SSH新手教程一起食用效果更佳。
一、SSH config:告别记一堆IP和参数
管理多台服务器,每次都敲长长的 ssh -p 2222 user@1.2.3.4 -i ~/.ssh/key 太累。用 ~/.ssh/config 文件配置别名:
Host hk-web
HostName 1.2.3.4
User root
Port 2222
IdentityFile ~/.ssh/hk_key
Host hk-db
HostName 5.6.7.8
User admin
Port 22
之后只需 ssh hk-web 就能连接,参数自动带上。多服务器管理效率倍增,还能配合scp、rsync使用这些别名。
二、本地端口转发:安全访问内网服务
服务器上的数据库、管理面板只监听本机(为了安全没对公网开放),怎么从本地访问?本地端口转发:
ssh -L 3306:localhost:3306 hk-db
这条命令把远程服务器的3306端口”映射”到你本地的3306。之后用本地数据库客户端连 localhost:3306,流量经SSH加密隧道转到远程数据库。数据库无需暴露公网,你却能安全地本地管理——这是访问内网服务的最佳实践之一。
三、远程端口转发:把本地服务临时给别人看
本地开发的服务想临时让远程服务器能访问?远程端口转发(与内网穿透思路相通,参考博客frp篇):
ssh -R 8080:localhost:3000 hk-web
把本地3000端口映射到远程服务器的8080。临时演示、调试webhook时很有用(长期发布还是用frp更稳)。
四、跳板机(堡垒机):连接内网服务器
安全架构中,内网服务器不直接暴露,只能通过一台跳板机访问。SSH的ProxyJump让这个过程无感:
ssh -J hk-web hk-internal # 通过hk-web跳到内网的hk-internal
或在config里配置:
Host hk-internal
HostName 10.0.0.5
ProxyJump hk-web
之后 ssh hk-internal 就自动经跳板机连接内网机器。配合WireGuard私有网络,内网服务器的安全性和可管理性都能兼顾。
五、保持连接不断线
SSH连接常因空闲被断开,在config里加:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
每60秒发个心跳保活。长任务另外配合 tmux/screen,即使连接真断了,任务也在服务器上继续跑。
六、免密登录与安全
密钥登录不仅安全,配合config和别名,连服务器变成一条短命令的事。安全提醒:私钥要加密码保护(ssh-keygen时设passphrase)、用ssh-agent管理避免反复输密码、生产环境禁用密码登录只留密钥(参考博客安全加固篇)。
结论
SSH远不止”连服务器”:config管理多机、端口转发安全访问内网服务、跳板机连内网、保活防断线。这些技巧看似小,却是日常运维效率和安全的分水岭。在你的服务器上把SSH config和端口转发用起来,你会发现管理服务器可以如此优雅高效。