5.2 SSH远程管理与安全配置
一、SSH 简介
SSH(Secure Shell)是 Linux 最常用的远程管理协议,用于:
- 远程登录服务器
- 执行命令
- 文件传输
- 隧道转发
- 自动化运维
默认使用:
id
SSH 通过加密通信保护数据安全,替代早期不安全的 Telnet。
二、SSH 基本连接
2.1 默认端口登录
id
示例:
id
2.2 指定端口连接
id
2.3 常用 SSH 参数
| 参数 |
作用 |
-p |
指定端口 |
-i |
指定私钥文件 |
-v |
显示调试信息 |
-C |
启用压缩 |
-N |
不执行远程命令 |
三、SSH 密钥认证
SSH 支持:
生产环境推荐使用:
id
安全性更高。
四、生成 SSH 密钥对
在客户端执行:
id1
| ssh-keygen -t rsa -b 4096
|
默认生成:
| 文件 |
作用 |
~/.ssh/id_rsa |
私钥 |
~/.ssh/id_rsa.pub |
公钥 |
说明:
五、配置免密登录
5.1 自动上传公钥
id
5.2 手动配置方式
id1
| cat ~/.ssh/id_rsa.pub | ssh root@服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
|
5.3 测试免密登录
id
配置成功后无需输入密码。
六、SSH 服务配置
SSH 服务配置文件:
id
修改配置后需要重启服务。
七、常见安全配置
7.1 修改默认端口
id
降低被自动扫描概率。
7.2 禁止 root 直接登录
id
推荐:
7.3 禁用密码登录
id1
| PasswordAuthentication no
|
仅允许密钥认证。
注意:
- 必须先确认密钥可正常登录
- 否则可能导致无法远程连接
7.4 限制允许登录用户
id
仅允许指定用户通过 SSH 登录。
7.5 限制 SSH 空闲时间
id1 2
| ClientAliveInterval 300 ClientAliveCountMax 2
|
作用:
八、重启 SSH 服务
CentOS / RHEL
id
Ubuntu / Debian
id
九、防火墙放行 SSH 端口
如果修改 SSH 端口,需要同步开放防火墙。
firewalld
开放端口
id1
| firewall-cmd --add-port=2222/tcp --permanent
|
重新加载规则
id
UFW(Ubuntu)
id
十、查看 SSH 服务状态
查看运行状态
id
查看监听端口
id
十一、SSH 常见文件
| 文件 |
作用 |
/etc/ssh/sshd_config |
SSH 服务端配置 |
~/.ssh/authorized_keys |
允许登录的公钥 |
~/.ssh/id_rsa |
私钥 |
~/.ssh/id_rsa.pub |
公钥 |
/var/log/secure |
SSH 登录日志(CentOS) |
十二、常见安全建议
建议配置
- 使用密钥认证
- 禁止 root 直接登录
- 修改默认端口
- 禁用密码登录
- 限制允许登录用户
- 配置防火墙规则
不推荐做法
- 长期开启 root 密码登录
- 使用弱密码
- 将私钥泄露到公网
- 使用默认 22 端口暴露公网
十三、总结
SSH 是 Linux 远程管理核心工具,主要用于:
- 远程服务器运维
- 自动化脚本执行
- 安全远程连接
- 文件传输与部署
掌握 SSH 密钥认证与安全配置,是 Linux 运维与云服务器管理的重要基础。