SSH:不只是远程登录!用好这5个“隐藏”功能,效率翻倍

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创建“不灭会话”,断网重连后继续干活:

  1. 创建会话:screen -S database-backup
  2. 执行耗时任务(如数据库备份)
  3. 按Ctrl+A+D detach会话,此时即使断开SSH,任务仍在后台运行
  4. 重连后恢复会话: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限制仅本机访问转发端口,避免被滥用。

原文链接:,转发请注明来源!