乐闻世界logo
搜索文章和话题

SSH 配置文件有哪些常用选项?如何通过配置文件简化连接管理?

3月6日 21:31

SSH 配置文件可以大大简化连接管理,提高工作效率。SSH 主要有两个配置文件:客户端配置文件和服务器端配置文件。

客户端配置文件

位置

  • 全局配置/etc/ssh/ssh_config
  • 用户配置~/.ssh/config

常用配置项

bash
# ~/.ssh/config 示例 # 基本主机配置 Host server1 HostName 192.168.1.100 User admin Port 2222 IdentityFile ~/.ssh/id_ed25519 # 使用别名 Host production HostName prod.example.com User deploy IdentityFile ~/.ssh/prod_key # 批量配置 Host *.example.com User webadmin IdentityFile ~/.ssh/web_key # 跳板机配置 Host internal-server HostName 10.0.0.50 User root ProxyJump jump.example.com # 其他常用选项 Host dev-server HostName dev.example.com User developer ServerAliveInterval 60 ServerAliveCountMax 3 Compression yes StrictHostKeyChecking no

配置项说明

配置项说明
HostName实际主机名或 IP 地址
User登录用户名
PortSSH 端口号
IdentityFile私钥文件路径
ProxyJump跳板机地址
ServerAliveInterval保持连接的心跳间隔(秒)
Compression是否启用压缩
StrictHostKeyChecking主机密钥检查级别

服务器端配置文件

位置

  • 主配置文件/etc/ssh/sshd_config

常用安全配置

bash
# /etc/ssh/sshd_config 示例 # 基本设置 Port 22 Protocol 2 # 认证设置 PasswordAuthentication no # 禁用密码认证 PubkeyAuthentication yes # 启用公钥认证 PermitRootLogin no # 禁止 root 登录 MaxAuthTries 3 # 最大认证尝试次数 # 安全加固 X11Forwarding no # 禁用 X11 转发 AllowTcpForwarding yes # 允许 TCP 转发 GatewayPorts no # 禁用网关端口 # 访问控制 AllowUsers admin deploy # 只允许特定用户 DenyUsers test guest # 拒绝特定用户 AllowGroups ssh-users # 只允许特定组 # 性能优化 MaxStartups 10:30:100 # 连接速率限制 LoginGraceTime 60 # 登录超时时间 # 日志 LogLevel INFO # 日志级别 SyslogFacility AUTHPRIV # 日志设施

使用技巧

1. 快速连接

配置后可以直接使用别名连接:

bash
ssh server1 # 等同于 ssh -p 2222 admin@192.168.1.100

2. 批量操作

bash
# 对多个主机执行相同命令 for host in server1 server2 server3; do ssh $host "uptime" done

3. 配置文件优先级

  • 命令行参数 > 用户配置文件 > 全局配置文件
  • 后出现的配置覆盖前面的配置

4. 配置文件语法

  • 使用 Host 模式匹配主机
  • 使用空格缩进
  • 支持通配符 *?
  • 使用 # 注释

最佳实践

  1. 使用用户配置文件管理个人连接
  2. 为不同环境(开发、测试、生产)创建不同的配置
  3. 定期审查和清理不再使用的配置
  4. 使用有意义的别名提高可读性
  5. 在服务器端禁用不安全的功能
  6. 限制认证尝试次数防止暴力破解
标签:SSH