温馨提示×

CentOS SSH安全设置指南

小樊
33
2025-03-19 11:39:27
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

CentOS SSH安全设置指南

简介

SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络中安全地远程登录和管理服务器。通过正确配置和使用SSH,管理员可以远程管理服务器,传输文件,并确保通信的机密性。本文将深入探讨Linux中SSH的配置和使用,提供详实的示例代码,帮助管理员更全面地了解和运用SSH技术。

安装与基础配置

安装SSH服务

在CentOS系统上安装OpenSSH服务器:

sudo yum install openssh-server

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

sudo systemctl start sshd
sudo systemctl enable sshd

服务器配置

编辑SSH配置文件 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config
  • 更改默认端口:将默认端口从22更改为非标准端口,如2222,以减少被自动扫描的风险:

    Port 2222
    
  • 禁止root直接登录:为了提高安全性,禁止root用户通过SSH直接登录:

    PermitRootLogin no
    
  • 禁用密码认证:推荐使用密钥认证,禁用密码认证:

    PasswordAuthentication no
    
  • 限制允许登录的用户:只允许特定用户登录,例如仅允许用户 user1user2 登录:

    AllowUsers user1 user2
    

重启SSH服务以应用更改:

sudo systemctl restart sshd

密钥认证与安全加固

生成密钥对

在本地计算机上生成SSH密钥对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

按照提示操作,可以选择保存密钥的位置和输入一个可选的密码短语。

部署公钥到服务器

将公钥复制到远程服务器:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host

或者手动复制公钥到远程服务器的 ~/.ssh/authorized_keys 文件中:

cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

安全增强措施

  • 使用防火墙限制SSH端口访问:可以使用 firewalldiptables 配置防火墙规则,限制对服务器的访问,只允许必要的端口对外开放。
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
  • 部署fail2ban防御暴力破解:fail2ban会监视系统日志并禁止来自恶意IP地址的连接尝试。
sudo yum install fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

客户端配置与实用命令

简化连接配置

编辑客户端的SSH配置文件 ~/.ssh/config

Host myserver
  HostName 192.168.1.100
  User user
  Port 2222
  IdentityFile ~/.ssh/id_rsa

连接时直接使用别名:

ssh myserver

文件传输

  • 本地到远程:使用SCP传输文件到远程主机:

    scp -P 2222 local_file user@remote_host:/path
    
  • 远程到本地:使用SCP从远程主机传输文件到本地:

    scp -r user@remote_host:/remote_dir /local_dir
    

端口转发与隧道

  • 本地端口转发:通过SSH隧道访问内网服务:

    ssh -L 8080:internal_host:80 user@jump_host
    

通过上述步骤,可以显著提高CentOS系统的SSH安全性,减少受到攻击的风险。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:centos ssh命令行操作指南

0