SSH 安全外壳协议

Secure Shell。远程登录另一台机器、在它上面执行命令的加密协议。运维、开发、服务器管理的基础工具。

默认走 TCP 端口 22。

替代了什么:

  • Telnet —— SSH 的明文前辈,已废弃
  • rlogin / rsh —— Unix 老式远程命令,明文,废弃

SSH 提供:

  • 加密通信 —— 防 抓包
  • 认证 —— 密码或密钥
  • 端口转发(SSH Tunnel) —— 把本地端口”隧道”到远程
  • 基础上建了 SFTP 文件传输、scp 复制等工具

安全配置最佳实践:

  1. 用 SSH 密钥(public/private),不要用密码
  2. 关闭密码登录(PasswordAuthentication no)
  3. 禁用 root 直接登录(PermitRootLogin no)
  4. 改默认端口(不一定提升安全,但减少日志噪音)
  5. fail2ban 防暴力破解
  6. 定期审计 authorized_keys

公钥放到远程的 ~/.ssh/authorized_keys,私钥保管在本地。私钥泄露 = 远程机器沦陷。