凌峰创科服务平台

centos7 ssh服务器

在CentOS 7系统中配置SSH服务器是远程管理服务器的常见操作,SSH(Secure Shell)协议提供了加密的通信通道,确保数据传输的安全性,以下将详细介绍CentOS 7下SSH服务器的安装、配置、安全优化及常见问题处理。

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

SSH服务器的安装与启动

CentOS 7默认已安装OpenSSH服务,若未安装可通过yum包管理器进行安装,执行以下命令更新软件包列表并安装OpenSSH服务器:

sudo yum update -y
sudo yum install openssh-server -y

安装完成后,启动SSH服务并设置开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

通过systemctl status sshd命令可查看服务运行状态,若显示active (running)则表示服务已正常启动。

SSH服务的基本配置

SSH服务的主配置文件为/etc/ssh/sshd_config,建议修改前先备份原始配置文件:

centos7 ssh服务器-图2
(图片来源网络,侵删)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用vinano编辑器打开配置文件,常见修改项如下:

  • 修改监听端口:默认端口为22,为提高安全性可修改为其他端口(如2222),需确保防火墙允许该端口访问:
    Port 2222
  • 禁止root用户直接登录:增加安全性,限制root用户只能通过普通用户远程登录后再切换:
    PermitRootLogin no
  • 限制登录用户:仅允许特定用户通过SSH登录,在文件中添加:
    AllowUsers user1 user2
  • 密码认证与密钥认证:建议禁用密码认证,仅允许密钥认证(需提前配置SSH密钥对):
    PasswordAuthentication no
    PubkeyAuthentication yes

    修改配置文件后,需重启SSH服务使配置生效:

    sudo systemctl restart sshd

防火墙与SELinux配置

CentOS 7默认使用firewalld防火墙,需开放SSH服务端口(以默认22端口为例):

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

若修改了SSH端口(如2222),则需手动添加端口规则:

centos7 ssh服务器-图3
(图片来源网络,侵删)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

关于SELinux,默认配置下SSH服务可正常运行,若遇到连接问题,可检查SELinux布尔值:

getsebool -a | grep ssh

确保ssh_keysignssh_login_allowed_user等布尔值为on,若需修改可通过setsebool -P 布尔值名 on命令调整。

SSH服务器的安全优化措施

  1. 使用强密码或密钥认证:强制用户设置复杂密码(至少12位,包含大小写字母、数字及特殊字符),或通过ssh-keygen生成SSH密钥对实现免密登录。
  2. 定期更新系统:执行yum update -y及时修复系统漏洞,防止SSH服务被攻击。
  3. 限制登录尝试次数:通过fail2ban工具配置防暴力破解,安装后编辑/etc/fail2ban/jail.local文件,添加SSH监狱规则:
    [sshd]
    enabled = true
    port = 22
    maxretry = 3
    bantime = 3600

    启动fail2ban服务:

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
  4. 禁用不必要的协议版本:确保SSH协议版本为2,在sshd_config中添加:
    Protocol 2

常见问题排查

  1. 连接被拒绝:检查SSH服务是否启动(systemctl status sshd),确认防火墙和SELinux配置是否正确。
  2. 认证失败:验证用户名、密码或密钥是否正确,检查/var/log/secure日志文件定位错误原因。

相关问答FAQs

Q1: 如何修改SSH默认端口后仍能正常连接?
A: 修改/etc/ssh/sshd_config中的Port值后,需重启SSH服务(systemctl restart sshd),同时确保防火墙开放新端口(如firewall-cmd --add-port=2222/tcp --permanent并重载防火墙),客户端连接时需指定新端口,例如ssh user@server_ip -p 2222

Q2: 忘记SSH服务器root密码如何重置?
A: 若可通过物理控制台或VNC登录服务器,可进入单用户模式重置密码:重启服务器,在GRUB引导界面按e键编辑启动参数,找到linux16linuxefi行,在末尾添加rd.break,按Ctrl+X启动,进入系统后,执行mount -o remount,rw /sysrootchroot /sysrootpasswd root修改密码,touch /.autorelabel更新SELinux标签,最后执行exit重启服务器。

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