SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。
核心功能
- 远程登录:允许用户通过加密通道远程登录到服务器
- 命令执行:在远程服务器上执行命令
- 文件传输:通过 SFTP、SCP 等协议安全传输文件
- 端口转发:创建加密隧道,转发网络流量
- X11 转发:远程运行图形应用程序
工作原理
SSH 使用客户端-服务器架构:
- 服务器端:监听 22 端口(默认),等待连接请求
- 客户端:发起连接,进行身份验证
- 加密通道:所有通信通过加密隧道传输
身份验证方式
- 密码认证:使用用户名和密码
- 公钥认证:使用公钥/私钥对,更安全
- 主机密钥:验证服务器身份,防止中间人攻击
安全特性
- 所有数据传输都经过加密
- 支持多种加密算法(AES、ChaCha20 等)
- 提供完整性验证(HMAC)
- 支持密钥交换算法(Diffie-Hellman、ECDH 等)
常用命令
bash# 基本连接 ssh user@hostname # 指定端口 ssh -p 2222 user@hostname # 使用密钥认证 ssh -i /path/to/key user@hostname # 文件传输 scp file.txt user@hostname:/path/to/destination
SSH 已成为 Linux/Unix 系统远程管理的标准工具,广泛应用于服务器管理、自动化部署、CI/CD 流程等场景。