CentOS SSH远程管理如何设置
导读:一、安装与启动SSH服务 在CentOS上设置SSH远程管理的第一步是确保OpenSSH服务器已安装并运行。默认情况下,CentOS系统通常预装openssh-server,可通过以下命令验证: sudo systemctl status...
一、安装与启动SSH服务
在CentOS上设置SSH远程管理的第一步是确保OpenSSH服务器已安装并运行。默认情况下,CentOS系统通常预装openssh-server,可通过以下命令验证:
sudo systemctl status sshd
若未安装,使用yum包管理器安装:
sudo yum install openssh-server -y
安装完成后,启动SSH服务并设置为开机自启(确保系统重启后SSH服务自动运行):
sudo systemctl start sshd
sudo systemctl enable sshd
二、配置防火墙允许SSH连接
CentOS 7及以上版本默认使用firewalld作为防火墙,需开放SSH服务对应的端口(默认22):
sudo firewall-cmd --permanent --add-service=ssh # 永久添加SSH服务规则
sudo firewall-cmd --reload # 重新加载防火墙配置使规则生效
若需限制SSH访问的IP范围,可使用更精细的富规则(例如仅允许192.168.1.0/24网段访问):
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
三、优化SSH配置文件提升安全性
SSH的核心配置文件为/etc/ssh/sshd_config,需通过编辑该文件调整以下关键参数(修改前建议备份原文件):
- 更改默认端口:将
#Port 22修改为其他端口(如2222),减少针对默认端口的自动化扫描攻击:Port 2222 - 禁用root直接登录:禁止root用户通过SSH直接登录,降低服务器被暴力破解的风险:
PermitRootLogin no - 限制允许登录的用户:通过
AllowUsers指令指定可登录的用户(例如仅允许user1和user2登录):AllowUsers user1 user2 - 禁用密码认证(推荐密钥认证):关闭密码登录,仅允许使用SSH密钥认证,大幅提升安全性:
PasswordAuthentication no PubkeyAuthentication yes - 限制密码尝试次数:设置
MaxAuthTries参数(如3次),超过次数后断开连接,防止暴力破解:MaxAuthTries 3
修改完成后,重启SSH服务使配置生效:
sudo systemctl restart sshd
四、配置SSH密钥认证(可选但推荐)
密钥认证比密码认证更安全,能有效防止密码泄露导致的服务器入侵。步骤如下:
- 在本地计算机生成密钥对:使用
ssh-keygen命令生成RSA密钥对(默认保存路径为~/.ssh/id_rsa,私钥;~/.ssh/id_rsa.pub,公钥):
按提示操作(可直接按回车键使用默认路径和空密码)。ssh-keygen -t rsa -b 4096 - 将公钥复制到远程服务器:使用
ssh-copy-id命令将本地公钥复制到远程服务器的~/.ssh/authorized_keys文件中(需输入远程用户的密码):ssh-copy-id user1@remote_ip -p 2222 # 若修改了SSH端口,需添加-p参数指定端口 - 测试密钥认证登录:使用SSH命令连接远程服务器,无需输入密码:
ssh user1@remote_ip -p 2222
五、使用Fail2Ban防止暴力破解(可选)
Fail2Ban是一款入侵防御工具,可监控SSH登录日志,自动封禁多次尝试失败的IP地址。安装与配置步骤如下:
- 安装Fail2Ban:
sudo yum install epel-release -y # 安装EPEL仓库 sudo yum install fail2ban -y # 安装Fail2Ban - 配置Fail2Ban:编辑
/etc/fail2ban/jail.local文件,添加SSH防护规则:[sshd] enabled = true # 启用SSH防护 port = ssh # 监控SSH端口(默认22,若修改了端口需同步调整) filter = sshd # 使用sshd过滤规则 logpath = /var/log/secure # SSH登录日志路径 maxretry = 3 # 允许的最大失败次数 bantime = 600 # 封禁时间(秒),例如600秒=10分钟 - 启动Fail2Ban服务:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
六、测试SSH连接
完成上述配置后,从本地计算机测试SSH连接:
ssh user1@remote_ip -p 2222 # 若未修改端口,可省略-p参数
若配置了密钥认证,直接登录;若使用密码认证,输入用户密码即可。若连接失败,可通过tail -f /var/log/secure查看SSH日志排查问题(如端口未开放、配置文件语法错误等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS SSH远程管理如何设置
本文地址: https://pptw.com/jishu/729266.html
