1. 网络穿墙术:SSH端口转发三剑客
当你在咖啡厅想访问公司内网数据库时,直接连接被防火墙拦截?试试SSH端口转发这把“瑞士军刀”。
- 本地转发(-L):把本地端口变成“隐形管道”,流量经SSH加密后直达目标。比如将本地3306端口映射到内网数据库:
- ssh -L 3306:db-server:3306 user@jump-server -Nf
- 现在访问localhost:3306就像坐在公司工位上操作数据库(如图1所示网络拓扑)。
- 远程转发(-R):让内网服务“穿透”到公网。在家调试本地Web服务时,让同事通过公网服务器访问你的localhost:8080:
- ssh -R 8080:localhost:8080 user@public-server
- 动态转发(-D):创建SOCKS代理,让浏览器通过SSH隧道安全上网。在公共WiFi环境下:
- ssh -D 1080 user@vpn-server
- 再在浏览器设置SOCKS代理为localhost:1080,所有流量瞬间加密(配置界面如图2)。
2. 加密快递员:SCP命令的7个隐藏技巧
别再用FTP传输文件了!SCP基于SSH加密,速度与安全兼得,这几个参数让你效率翻倍:
参数 | 用途 | 实战案例 |
-r | 递归传输目录 | scp -r project/ user@server:/data/ |
-C | 压缩传输 | scp -C largefile.tar.gz user@server:~ |
-P | 指定端口 | scp -P 2222 file.txt user@server:~ |
-p | 保留文件权限 | scp -p config.ini user@server:/etc/ |
断点续传:配合rsync实现大文件续传(需两端安装rsync):
rsync --partial --progress -e ssh large.iso user@server:~/3. 告别密码地狱:SSH密钥的正确打开方式
还在记服务器密码?SSH密钥认证让你像刷门禁卡一样登录,安全性直接拉满。
密钥生成(选Ed25519算法,比RSA更安全):
ssh-keygen -t ed25519 -C "your.email@company.com" -N "强密码"生成的私钥权限必须设为600(chmod 600 ~/.ssh/id_ed25519),否则SSH会拒绝使用。
批量分发公钥:用ssh-copy-id一键搞定:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server企业级管理可通过Ansible批量部署,密钥清单用Git管理(如图3所示认证流程)。
4. 会话不死术:Screen+SSH让工作无缝衔接
远程操作时断网=加班?用screen创建“不灭会话”,断网重连后继续干活:
- 创建会话:screen -S database-backup
- 执行耗时任务(如数据库备份)
- 按Ctrl+A+D detach会话,此时即使断开SSH,任务仍在后台运行
- 重连后恢复会话:screen -r database-backup
应急恢复:若会话异常,用screen -ls列出会话ID,强制恢复:
screen -D -r 21201 # 21201为会话ID(如图4命令行示例)5. 高级玩法:SSH隧道玩转内网穿透
当你需要让客户临时访问你本地开发的网站,又不想暴露公网IP时,反向隧道+动态转发组合拳解决问题:
# 本地执行:将本地3000端口通过公网服务器暴露
ssh -R 8080:localhost:3000 user@public-server -Nf
# 客户访问public-server:8080即可看到你的本地网站安全提示:生产环境建议用GatewayPorts no限制仅本机访问转发端口,避免被滥用。
