Linux如何配置SSH端口和安全选项_Linux SSH端口与安全选项配置方案

秋雪小哥_8056

秋雪小哥_8056

2026-04-09

225人浏览

原创

改port不生效需先确认sshd是否监听新端口,常见原因有未重启服务、防火墙拦截、selinux拒绝;禁用密码登录后须确保authorized_keys权限为600且公钥完整;allowusers优先于permitrootlogin生效;减少扫描需配合listenaddress和addressfamily限制监听地址与协议。

linux如何配置ssh端口和安全选项_linux ssh端口与安全选项配置方案

直接改 Port 不生效?先确认服务是否在监听新端口

改完 /etc/ssh/sshd_config 里的 Port 后连不上,八成不是配置写错了,而是 sshd 根本没在新端口上监听。常见原因有三个:配置没重载、防火墙拦着、SELinux 拒绝新端口。

验证监听状态用这条命令:sudo ss -tulnp | grep sshd。如果输出里只有 :22,说明新端口没生效;如果看到 :2222(或你设的端口)但还是连不上,大概率是防火墙或 SELinux 挡住了。

  • 必须执行 sudo systemctl restart sshd(不是 reload),否则改动不加载
  • firewalld 用户要加规则:sudo firewall-cmd --add-port=2222/tcp --permanent && sudo firewall-cmd --reload
  • SELinux 启用时(sestatus 显示 enforcing),得手动放行:sudo semanage port -a -t ssh_port_t -p tcp 2222

PasswordAuthentication no 启用后连不进去了?密钥没配全

禁用密码登录后,SSH 只认公钥。但很多人只生成了密钥,却漏了关键两步:把公钥放进服务器的 ~/.ssh/authorized_keys,且该文件权限不对。

典型错误现象是客户端报 Permission denied (publickey),而服务器日志(sudo tail -f /var/log/auth.log)里显示 Authentication refused: bad ownership or modes for directory /home/user/.ssh。

  • 确保 ~/.ssh 目录权限是 700:chmod 700 ~/.ssh
  • 确保 ~/.ssh/authorized_keys 权限是 600:chmod 600 ~/.ssh/authorized_keys
  • 公钥内容必须完整复制,不能多空格、少换行;建议用 ssh-copy-id -p 2222 user@host 自动完成

PermitRootLogin no 和 AllowUsers 冲突时以谁为准?

两者不冲突,但生效顺序有讲究:AllowUsers 是第一道门禁,它先过滤掉所有不在名单里的用户;之后才检查 PermitRootLogin。也就是说,如果你在 AllowUsers 里写了 alice,那即使 PermitRootLogin yes,root 也进不来。

反过来,如果 AllowUsers 为空或注释掉,PermitRootLogin no 才真正起作用——此时 root 被明确拒绝,其他普通用户仍可登录。

  • 推荐组合:PermitRootLogin no + AllowUsers alice bob,双重保险
  • 注意语法:多个用户名用空格分隔,不能用逗号;支持 user@ip 限定来源 IP
  • 修改后务必测试新用户能否登录,再登出当前会话,避免把自己锁在外面

为什么改了端口还被扫?ListenAddress 和 AddressFamily 得配合着调

只改 Port 不够,攻击者仍可能通过 IPv6 或特定网卡找到你。比如服务器有公网和内网双网卡,若 ListenAddress 没限制,默认 0.0.0.0 会监听所有 IPv4 接口,包括你不希望暴露的公网地址。

更隐蔽的做法是:指定只监听内网 IP,并关闭 IPv6(除非真需要):

  • 在 sshd_config 中设置:ListenAddress 192.168.1.100(替换成你的内网 IP)
  • 加上:AddressFamily inet(强制只用 IPv4)
  • 然后重启 sshd,再用 ss -tuln | grep :2222 确认监听地址是否已变成 192.168.1.100:2222

这一步容易被跳过,但对减少无效扫描量效果明显——很多自动化工具只扫默认网关段或 IPv6 地址,不会主动探测你内网段的非标端口。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3108

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4669

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3729

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

426

15

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3950

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2533

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6130

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5782

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习