当前位置:首页 > 云服务器 > 正文

怎样在CentOS搭建SSH服务器

在CentOS系统上搭建SSH服务器的核心步骤:安装 openssh-server软件包,编辑 /etc/ssh/sshd_config配置文件以调整安全设置(如端口、禁止root登录),启动并启用 sshd服务,最后配置防火墙放行指定SSH端口以确保远程访问安全。

SSH(Secure Shell)是管理Linux服务器的核心工具,通过加密通道实现远程安全登录和文件传输,在CentOS上搭建SSH服务器不仅是运维基础,更是保障系统安全的关键步骤,本文基于CentOS 7/8编写,遵循Linux基金会和Red Hat官方最佳实践,所有操作需root权限执行。


准备工作

  1. 更新系统
    避免安全破绽,确保所有软件为最新版本:

    yum update -y && yum upgrade -y
  2. 检查现有SSH服务
    多数CentOS已预装OpenSSH,确认状态:

    systemctl status sshd

    若未安装,跳过此步直接进入安装环节。


安装OpenSSH服务器

yum install openssh-server -y

关键配置(编辑/etc/ssh/sshd_config

nanovi修改配置文件,重点调整以下参数:

vi /etc/ssh/sshd_config
# 修改端口(降低暴力破解风险)
Port 2222  # 建议改用1024-65535的高端口
# 禁止root直接登录
PermitRootLogin no
# 仅允许特定用户登录(示例允许用户admin)
AllowUsers admin
# 启用密钥认证,禁用密码登录(强推)
PasswordAuthentication no
PubkeyAuthentication yes
# 限制登录尝试次数
MaxAuthTries 3
# 超时自动断开
ClientAliveInterval 300
ClientAliveCountMax 0

修改后保存文件,执行 :wq(vi编辑器)。

怎样在CentOS搭建SSH服务器  第1张

安全提示

  • 改端口前需确认防火墙放行新端口
  • 禁用密码前必须配置SSH密钥

防火墙与SELinux设置

  1. 放行SSH端口

    # CentOS 7
    firewall-cmd --permanent --add-port=2222/tcp  # 替换为你的端口
    firewall-cmd --reload
    # CentOS 8(使用firewalld或nftables)
    firewall-cmd --add-port=2222/tcp --permanent && firewall-cmd --reload
  2. SELinux策略调整
    若修改默认端口(22),需更新SELinux规则:

    semanage port -a -t ssh_port_t -p tcp 2222

启动服务并设置开机自启

systemctl enable sshd && systemctl restart sshd

验证服务状态:

systemctl status sshd | grep "Active:"

正常输出应包含 active (running)


客户端连接测试

  1. Linux/Mac终端

    ssh -p 2222 admin@服务器IP
  2. Windows用户
    使用PuTTY或Windows Terminal,指定端口和密钥路径。


高级安全加固(可选)

  1. Fail2ban防暴力破解

    yum install epel-release -y
    yum install fail2ban -y
    systemctl enable --now fail2ban
  2. 双因素认证(2FA)
    集成Google Authenticator:

    yum install google-authenticator -y
    google-authenticator  # 按提示生成密钥

    /etc/ssh/sshd_config中添加:

    AuthenticationMethods publickey,keyboard-interactive

故障排查

问题现象 解决方案
Connection refused 检查防火墙/SELinux是否放行端口
Permission denied (publickey) 确认客户端公钥已写入~/.ssh/authorized_keys
SSH服务无法启动 运行 journalctl -xe -u sshd 查看日志

搭建SSH服务器是CentOS管理的基石,但默认配置存在安全风险。务必遵循最小权限原则:禁用root登录、使用密钥认证、定期更新系统,对于生产环境,建议每季度审计sshd_config文件,并监控登录日志(/var/log/secure)。

权威安全建议

  • NIST SP 800-123:服务器安全配置指南
  • Linux基金会SSH安全最佳实践

引用说明
本文参考以下权威资源:

  1. Red Hat官方文档:Configuring SSH
  2. OpenSSH手册页:man sshd_config
  3. CERT安全指南:SSH Server Hardening
  4. CentOS Wiki:Security Tips
0