Skip to content

SSH:远程登录与安全隧道基础

SSH(Secure Shell)是最常用的远程管理协议之一。它解决的核心问题很直接:

  1. 在不可信网络上,如何安全地登录远程主机。
  2. 如何在传输过程中保证机密性、完整性与身份可信。
  3. 如何把本地端口和远端服务安全地“打通”。

1. SSH 到底做了什么

和明文传输的远程协议不同,SSH 在连接建立时会协商加密算法并完成密钥交换,之后所有会话内容都在加密通道中传输。

一个典型 SSH 会话可以拆成三步:

  1. 客户端与服务端协商算法(加密、MAC、密钥交换)。
  2. 完成主机身份验证,防止中间人攻击。
  3. 用户身份认证(密码、公钥等),认证成功后建立会话。

2. 最常用的三种认证方式

方式安全性适用场景
密码认证中等临时登录、测试环境
公钥认证生产环境、自动化部署
证书认证很高大规模主机统一管理

建议

生产环境优先使用公钥认证,并禁用密码登录与 root 直登。


3. 你最常用的几个 SSH 命令

bash
# 登录远程主机
ssh user@192.168.1.10

# 指定私钥登录
ssh -i ~/.ssh/id_ed25519 user@server

# 本地端口转发:把本地 8080 转到远端 127.0.0.1:80
ssh -L 8080:127.0.0.1:80 user@server

# 远程端口转发:把远端 9090 转到本地 3000
ssh -R 9090:127.0.0.1:3000 user@server

4. 常见面试追问

  1. 为什么第一次连接 SSH 会提示主机指纹。
  2. known_hosts 文件的作用是什么。
  3. SSH 隧道转发和 VPN 有什么差异。
  4. 为什么推荐 ed25519 而不是旧的 rsa

5. 相关文章