欢迎光临南昌笑劳网络科技有限公司,我们是一家专注中小型企业营销推广服务的公司!

咨询热线:400 76543 55
南昌笑劳网络科技有限公司
最新资讯News
南昌笑劳网络科技有限公司

LinuxSSH远程登录安全配置_密钥与端口加固方案【教程】

作者:舞夢輝影 | 点击: | 来源:舞夢輝影
0901
2026
SSH安全加固需依次完成五项操作:一、禁用密码登录并启用密钥认证;二、修改默认端口并更新防火墙及SELinux策略;三、配置fail2ban与TCPWrappers实现登录失败限制和IP白名单;四、禁用root直接登录;五、设置空闲超时自动断开。...
SSH安全加固需依次完成五项操作:一、禁用密码登录并启用密钥认证;二、修改默认端口并更新防火墙及SELinux策略;三、配置fail2ban与TCP Wrappers实现登录失败限制和IP白名单;四、禁用root直接登录;五、设置空闲超时自动断开。

如果您正在使用Linux系统并通过SSH进行远程登录,但未对默认配置进行安全加固,则可能面临暴力破解、未授权访问等风险。以下是针对SSH服务的密钥认证启用与端口变更两类核心加固操作步骤:

一、禁用密码登录并启用RSA/ECDSA密钥认证

该方法通过移除密码验证通道,强制使用非对称加密密钥对完成身份核验,可彻底规避弱口令与暴力破解攻击。需预先在客户端生成密钥对,并将公钥部署至服务器授权列表。

1、在本地终端执行命令生成4096位RSA密钥对:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_strong

2、将生成的公钥文件内容复制到目标服务器的~/.ssh/authorized_keys中,确保目录权限为700、文件权限为600。

3、编辑服务器SSH主配置文件:sudo nano /etc/ssh/sshd_config,定位到PasswordAuthentication行,将其值修改为no

4、在同一配置文件中确认PubkeyAuthentication设置为yes,并确保AuthorizedKeysFile指向.ssh/authorized_keys

5、重启SSH服务使配置生效:sudo systemctl restart sshd

二、修改默认SSH端口号

将SSH监听端口从22更改为高位非常规端口(如2222、3344),可减少自动化扫描工具的命中率,属于基础但有效的网络层隐藏手段。此操作需同步调整防火墙规则与SELinux策略(如启用)。

1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config,取消Port行注释,将其值修改为选定的新端口号,例如Port 2222

2、若系统启用了firewalld,执行命令开放新端口:sudo firewall-cmd --permanent --add-port=2222/tcp,随后重载规则:sudo firewall-cmd --reload

3、若SELinux处于enforcing模式,需添加端口类型映射:sudo semanage port -a -t ssh_port_t -p tcp 2222(如未安装semanage,先运行sudo yum install policycoreutils-python-utils)。

4、重启SSH服务:sudo systemctl restart sshd,并在新终端窗口使用ssh -p 2222 user@server_ip测试连接。

三、配置SSH登录失败限制与白名单机制

通过fail2ban服务监控sshd日志,对连续失败登录的IP实施临时封禁;同时结合TCP Wrappers限定仅允许特定IP段建立SSH连接,形成双重访问控制。

1、安装fail2ban:sudo apt install fail2ban(Debian/Ubuntu)或sudo yum install fail2ban(RHEL/CentOS)。

2、创建本地jail配置文件:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local,编辑jail.local,在[sshd]节下设置maxretry = 3bantime = 3600

3、启用TCP Wrappers,在/etc/hosts.allow中添加允许规则:sshd: 192.168.1.0/24, 203.0.113.45;在/etc/hosts.deny中写入sshd: ALL

4、重启fail2ban服务:sudo systemctl restart fail2ban

四、禁用root用户直接远程登录

阻止root账户通过SSH直接登录,可降低高权限账户暴露面。管理员应以普通用户身份登录后,再通过sudo或su切换权限,增强操作审计与责任追溯能力。

1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config,找到PermitRootLogin配置项,将其值设为no

2、确认服务器已存在具备sudo权限的普通用户账户,且该账户已配置密钥登录。

3、保存配置并重启SSH服务:sudo systemctl restart sshd

五、启用SSH连接空闲超时自动断开

防止因用户遗忘退出导致会话长期挂起,从而降低会话劫持与未授权延续操作的风险。通过设置客户端与服务端双向心跳检测,实现无交互连接的主动终止。

1、在/etc/ssh/sshd_config中添加两行配置:ClientAliveInterval 300ClientAliveCountMax 2

2、上述配置表示服务器每300秒发送一次心跳包,若连续2次未收到客户端响应即关闭连接,理论最长空闲时间为10分钟。

3、重启SSH服务以应用更改:sudo systemctl restart sshd


# linux  # ai  # 工具  # ubuntu  # 端口  # app  # 防火墙  # centos  # python  # word  # 配置文件 

我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 400 76543 55
    sale#ncxiaolao.cn
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得笑劳科技策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线400 76543 55
合作意向表
您需要的服务
您最关注的地方
预算

直接咨询