凌峰创科服务平台

centos ssh服务器搭建

目录

  1. 第一步:准备工作
    • 更新系统
    • 检查 SSH 服务是否已安装
  2. 第二步:安装并启动 SSH 服务
    • 安装 OpenSSH 服务器
    • 启动并设置开机自启
    • 检查服务状态
  3. 第三步:连接测试
    • 从另一台电脑连接
    • 常见连接问题排查
  4. 第四步:SSH 安全加固(非常重要!)
    • 修改默认端口
    • 禁用 root 用户直接登录
    • 使用密钥认证,禁用密码登录
    • 更改默认配置文件位置(可选,高级安全)
    • 使用 Fail2Ban 防暴力破解(可选,推荐)
  5. 第五步:常用管理命令
    • 重启 SSH 服务
    • 查看 SSH 服务状态
    • 查看 SSH 服务端口
    • 查看 SSH 服务日志
    • 停止和禁用 SSH 服务

第一步:准备工作

在开始之前,请确保你有一台已经安装好的 CentOS 系统,并且你拥有 rootsudo 权限。

centos ssh服务器搭建-图1
(图片来源网络,侵删)

更新系统

将系统所有软件包更新到最新版本,这是一个良好的安全习惯。

# 适用于 CentOS 7 / 8
sudo yum update -y
# 或者使用 dnf (CentOS 8 / Rocky Linux / AlmaLinux 更推荐)
sudo dnf update -y

检查 SSH 服务是否已安装

现代的 CentOS minimal 安装通常会默认包含 OpenSSH 客户端,但服务器端可能没有,我们可以检查一下。

# 检查是否已安装 openssh-server
rpm -qa | grep openssh-server

如果命令返回类似 openssh-server-8.2p1-10.el8.x86_64 的结果,说明已安装,如果没有,请跳到第二步进行安装。


第二步:安装并启动 SSH 服务

如果上一步检查发现没有安装,或者你想确保安装的是最新版本,请执行以下步骤。

centos ssh服务器搭建-图2
(图片来源网络,侵删)

安装 OpenSSH 服务器

# 使用 yum (CentOS 7)
sudo yum install -y openssh-server
# 使用 dnf (CentOS 8 / Rocky Linux / AlmaLinux)
sudo dnf install -y openssh-server

启动并设置开机自启

安装完成后,需要启动 SSH 服务,并设置它在系统重启后自动启动。

# 启动 SSH 服务
sudo systemctl start sshd
# 设置开机自启
sudo systemctl enable sshd

检查服务状态

确认 SSH 服务正在运行。

sudo systemctl status sshd

你应该会看到绿色的 active (running) 字样,表示服务已成功启动。


第三步:连接测试

你可以从另一台电脑(Windows, macOS, 或 Linux)尝试连接到你的 CentOS 服务器了。

centos ssh服务器搭建-图3
(图片来源网络,侵删)

从另一台电脑连接

打开终端(Windows 可以使用 PowerShell 或 PuTTY),使用 ssh 命令。

# 基本语法
ssh username@your_server_ip
# 示例
ssh myuser@192.168.1.100
  • myuser: 你在 CentOS 服务器上的用户名。
  • 168.1.100: 你 CentOS 服务器的 IP 地址。

如果是第一次连接,系统会提示你确认服务器的指纹(fingerprint),输入 yes 即可。

然后输入该用户的密码进行登录。

常见连接问题排查

  • 连接超时或拒绝连接:

    • 检查 CentOS 服务器防火墙是否放行了 SSH 端口(默认为 22),你可以暂时关闭防火墙进行测试(生产环境请勿随意关闭!)。
      # 临时关闭防火墙
      sudo systemctl stop firewalld

    查看防火墙规则

    sudo firewall-cmd --list-all

    
    *   确保服务器的 IP 地址正确,并且网络是通的。
  • Permission denied (publickey,password)**:

    • 检查用户名和密码是否正确。
    • 如果你后续配置了密钥认证并禁用了密码,这就是正常现象。

第四步:SSH 安全加固(非常重要!)

默认的 SSH 配置存在一些安全风险,强烈建议进行以下加固操作。

修改默认端口

将 SSH 端口从默认的 22 修改为一个不为大众所知的端口号(2222),可以避免大量自动化扫描攻击。

  • 编辑配置文件:

    sudo vi /etc/ssh/sshd_config

    找到这一行:

    #Port 22

    取消注释,并将其修改为:

    Port 2222

    提示: vi 编辑器的基本用法:按 i 进入编辑模式,修改后按 Esc 退出编辑模式,然后输入 wq 保存并退出。

  • 重启 SSH 服务使配置生效:

    sudo systemctl restart sshd
  • 放行新端口: 你需要更新防火墙规则,允许新的端口通过。

    # 添加永久规则
    sudo firewall-cmd --permanent --add-port=2222/tcp
    # 重新加载防火墙
    sudo firewall-cmd --reload
    # 验证新规则是否生效
    sudo firewall-cmd --list-all
  • 连接测试: 使用 -p 参数指定新端口进行连接。

    ssh myuser@192.168.1.100 -p 2222

禁用 root 用户直接登录

直接使用 root 用户通过 SSH 登录是极其危险的,应该为普通用户配置 sudo 权限,然后通过普通用户登录,再 susudoroot

  • 编辑配置文件:

    sudo vi /etc/ssh/sshd_config

    找到这一行:

    #PermitRootLogin yes

    修改为:

    PermitRootLogin no
  • 重启 SSH 服务:

    sudo systemctl restart sshd

    现在将无法直接使用 root 用户和密码登录 SSH。

使用密钥认证,禁用密码登录

这是目前最有效的 SSH 安全措施,通过密钥对进行认证,即使密码被破解也无法登录。

  • 在客户端电脑上生成密钥对: 如果你还没有 SSH 密钥,在你的客户端电脑上运行以下命令(通常在 ~/.ssh/ 目录下):

    # 一路按回车即可,使用默认设置
    ssh-keygen -t rsa -b 4096

    这会生成两个文件:id_rsa(私钥,绝对不能泄露!)和 id_rsa.pub(公钥)。

  • 将公钥复制到服务器: 使用 ssh-copy-id 命令可以轻松完成。

    # -i 指定你的公钥文件,-p 指定服务器SSH端口
    ssh-copy-id -i ~/.ssh/id_rsa.pub myuser@192.168.1.100 -p 2222

    输入 myuser 的密码后,公钥就会被追加到服务器 ~/.ssh/authorized_keys 文件中。

  • 在服务器上禁用密码登录: 再次编辑 SSH 配置文件:

    sudo vi /etc/ssh/sshd_config

    找到并修改以下两行:

    #PasswordAuthentication yes
    #ChallengeResponseAuthentication yes

    将它们修改为:

    PasswordAuthentication no
    ChallengeResponseAuthentication no
  • 重启 SSH 服务:

    sudo systemctl restart sshd

    重要提醒:在禁用密码登录之前,请100%确认你的密钥认证已经成功工作!否则,你将被锁定在服务器之外,需要通过控制台(如 VNC)才能恢复。

使用 Fail2Ban 防暴力破解(可选,推荐)

Fail2Ban 是一个防止入侵的软件,它会通过监控日志文件(如 SSH 日志),发现失败的登录尝试后,自动调用防火墙规则来封禁恶意 IP。

  • 安装 Fail2Ban:

    sudo dnf install -y fail2ban
  • 创建配置文件: 默认配置文件在 /etc/fail2ban/jail.local,我们可以复制一个模板来修改。

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • 编辑配置:

    sudo vi /etc/fail2ban/jail.local

    找到 [sshd] 部分,进行如下修改(这是最基础的配置):

    [sshd]
    enabled = true
    port = 2222          # 修改为你的SSH端口
    filter = sshd
    logpath = /var/log/secure
    maxretry = 5         # 最大尝试次数
    bantime = 1h         # 封禁时间
  • 启动并设置开机自启 Fail2Ban:

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban

第五步:常用管理命令

  • 重启 SSH 服务 (在修改配置文件后常用)

    sudo systemctl restart sshd
  • 查看 SSH 服务状态

    sudo systemctl status sshd
  • 查看 SSH 服务端口

    sudo ss -tulnp | grep sshd
  • 查看 SSH 服务日志

    # 查看实时日志
    sudo tail -f /var/log/secure
  • 停止和禁用 SSH 服务 (谨慎操作)

    # 停止服务
    sudo systemctl stop sshd
    # 禁用开机自启
    sudo systemctl disable sshd

通过以上步骤,你已经成功搭建了一个相对安全的 CentOS SSH 服务器,核心要点是:

  1. 安装并启动 sshd 服务。
  2. 修改默认端口 以避免自动化扫描。
  3. 禁用 root 直接登录 以减少攻击面。
  4. 启用密钥认证,禁用密码登录,这是最关键的安全措施。
  5. 使用 Fail2Ban 自动封禁恶意 IP。

遵循这些最佳实践,可以极大地提高你服务器的安全性。

分享:
扫描分享到社交APP
上一篇
下一篇