Skip to content

6. SSH 服务配置

本章节指导在 RHEL 8.10(主机名 ZSLinux)上使用 SecureCRT 配置 SSH 服务,配合 SecureFX 传输配置文件。内容涵盖两种登录方式:密码登录(适合临时访问)和 密钥登录(适合自动化和高安全性场景),包括端口修改、禁用 root 登录和密码登录等配置,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 ZSLinux 环境中测试,确保实验一致性。

6.1 前提条件

  • RHEL 8.10 已安装(参考第 1 章),主机名设置为 ZSLinux.
  • 使用 SecureCRT 登录(SSH2 协议,端口 22,虚拟机 IP).
  • 使用 SecureFX 传输文件(SFTP 协议).
  • SSH 服务(sshd)已安装(RHEL 8 默认包含,或使用 dnf install -y openssh-server 安装).
  • 防火墙已允许 SSH(参考第 1 章).

6.2 SSH 配置

6.2.1 密码登录配置

  • 启动并启用 sshd 服务(默认支持密码登录):
    bash
    systemctl enable --now sshd  # 启用并启动 SSH 服务
  • 修改 SSH 端口和禁用 root 登录(提高安全性):
    bash
    vim /etc/ssh/sshd_config  # 编辑 SSH 配置文件
    # 修改或添加以下行:
    Port 2222
    PermitRootLogin no
    systemctl restart sshd  # 重启 SSH 服务
  • 更新防火墙以支持新端口:
    bash
    firewall-cmd --permanent --add-port=2222/tcp  # 允许端口 2222
    firewall-cmd --permanent --remove-service=ssh  # 移除默认端口 22
    firewall-cmd --reload  # 应用防火墙规则

6.2.2 密钥登录配置

  • 生成密钥对(在客户端,如本地机器):
    bash
    ssh-keygen -t rsa -b 2048  # 生成 RSA 密钥对
    # 按 Enter 接受默认设置
  • 复制公钥到 ZSLinux
    • 方法 1:使用 ssh-copy-id
      bash
      ssh-copy-id -p 2222 user@ZSLinux  # 复制公钥到 ZSLinux(替换 user 为用户名)
    • 方法 2:使用 SecureFX 手动传输
      bash
      # 使用 SecureFX 连接 ZSLinux(SFTP,端口 2222)
      # 上传 ~/.ssh/id_rsa.pub 到 ZSLinux 的 ~/.ssh/authorized_keys
      chmod 600 ~/.ssh/authorized_keys  # 设置正确权限
  • 禁用密码登录(仅允许密钥登录):
    bash
    vim /etc/ssh/sshd_config  # 编辑 SSH 配置文件
    # 修改或添加以下行:
    PasswordAuthentication no
    systemctl restart sshd  # 重启 SSH 服务

6.3 验证

  • 检查 SSH 服务状态:
    bash
    systemctl status sshd  # 检查 SSH 服务状态
  • 验证密码登录(若未禁用密码登录):
    bash
    ssh -p 2222 user@ZSLinux  # 使用密码登录(替换 user 为用户名)
    # 应提示输入密码
    ssh -p 2222 root@ZSLinux  # 尝试 root 登录,应被拒绝
  • 验证密钥登录:
    bash
    ssh -p 2222 user@ZSLinux  # 测试免密登录
    # 应无需密码直接登录
  • 常见问题:
    • 连接失败:检查 sshd 服务状态、端口 2222 或防火墙设置。
    • 免密登录失败:确认公钥已正确复制到 ~/.ssh/authorized_keys 并设置权限(chmod 600)。

6.4 实践任务

  1. 使用 SecureCRT 登录 ZSLinux,启用并启动 sshd 服务。
  2. 配置 /etc/ssh/sshd_config,设置端口 2222 和禁用 root 登录。
  3. 使用 ssh-copy-id 或 SecureFX 设置密钥登录。
  4. 禁用密码登录并测试免密连接。

6.5 自测问题

  • 问题:如何更改 SSH 端口为 2222?
    • 答案:编辑 /etc/ssh/sshd_config,设置 Port 2222,运行 systemctl restart sshdfirewall-cmd --permanent --add-port=2222/tcp
  • 问题:如何使用 SecureFX 设置密钥登录?
    • 答案:上传 id_rsa.pub~/.ssh/authorized_keys,运行 chmod 600 ~/.ssh/authorized_keys
  • 问题:如何禁用 SSH 密码登录?
    • 答案:编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication no,运行 systemctl restart sshd.

Released under the MIT License.