首页 > 运维 > linux运维 > 正文

Linux SSH配置文件sshd_config详解

舞夢輝影
发布: 2025-10-27 11:10:01
原创
779人浏览过
修改SSH配置可提升安全性与连接体验。1. Port 2222减少攻击;2. ListenAddress指定监听IP;3. Protocol 2禁用不安全的SSH-1;4. PermitRootLogin no禁止root直连;5. PasswordAuthentication no关闭密码登录;6. PubkeyAuthentication yes启用密钥认证;7. AllowUsers限制登录用户;8. ClientAliveInterval 300和ClientAliveCountMax 3设置超时断开;9. MaxAuthTries 3防暴力破解;10. PermitEmptyPasswords no禁用空密码;11. AuthorizedKeysFile定义公钥路径;12. LogLevel INFO增强日志记录;13. UseDNS no加快连接;14. 启用StrictModes、IgnoreRhosts等安全选项。修改后需sshd -t测试配置并重启服务。

linux ssh配置文件sshd_config详解

SSH(Secure Shell)是远程管理Linux系统最常用的协议之一。其中,sshd_config 是SSH服务端的主配置文件,控制着SSH守护进程(sshd)的行为。正确配置该文件不仅能提升安全性,还能优化连接体验。以下是对常见配置项的详细说明。

1. 端口(Port)

默认情况下,SSH服务监听在22端口。出于安全考虑,建议修改为非常用端口,减少自动化攻击。

Port 22
# 可以设置多个端口,例如:
Port 2222

修改后需重启sshd服务,并确保防火墙放行新端口。

2. 监听地址(ListenAddress)

指定sshd绑定的IP地址。适用于多网卡服务器,限制仅在特定接口监听。

ListenAddress 0.0.0.0
# 或指定具体IP:
ListenAddress 192.168.1.100

IPv6使用 :: 表示所有地址。

3. 协议版本(Protocol)

建议使用SSH协议第2版,更安全。

Protocol 2

SSH-1存在已知漏洞,不推荐启用。

4. 禁止root登录(PermitRootLogin)

直接允许root登录风险较高,建议关闭。

PermitRootLogin no
# 或允许密钥方式登录:
PermitRootLogin prohibit-password

通过普通用户登录后再su或sudo提权更安全。

5. 用户密码认证(PasswordAuthentication)

是否允许密码登录。若使用密钥认证,建议关闭密码登录。

PasswordAuthentication no

关闭前确保已配置好公钥登录,避免被锁在服务器外。

6. 公钥认证(PubkeyAuthentication)

启用基于密钥的身份验证,通常与PasswordAuthentication配合使用。

PubkeyAuthentication yes

用户的公钥保存在 ~/.ssh/authorized_keys 中。

7. 允许登录用户(AllowUsers / DenyUsers)

限制可登录的用户,提高安全性。

AllowUsers alice bob charlie@192.168.1.*

支持用户名、用户名+IP模式。也可用 AllowGroups 限制用户组。

8. 登录超时设置(ClientAliveInterval / ClientAliveCountMax)

防止连接长时间挂起或断线后无法重连。

标贝悦读AI配音
标贝悦读AI配音

在线文字转语音软件-专业的配音网站

标贝悦读AI配音20
查看详情 标贝悦读AI配音
ClientAliveInterval 300
ClientAliveCountMax 3

表示每300秒发送一次心跳,最多3次无响应则断开连接。

9. 登录尝试限制(MaxAuthTries / MaxSessions)

限制单次连接的认证尝试次数和会话数量。

MaxAuthTries 3
MaxSessions 10

防止暴力破解,合理设置避免误封正常用户。

10. 禁用空密码登录(PermitEmptyPasswords)

禁止使用空密码的账户通过SSH登录。

PermitEmptyPasswords no

即使系统中存在空密码用户,也不应允许其远程登录。

11. 使用密钥登录路径(AuthorizedKeysFile)

定义用户公钥存储位置,默认如下:

AuthorizedKeysFile .ssh/authorized_keys

可自定义路径,但需注意权限和SELinux策略。

12. 日志级别(LogLevel)

设置日志详细程度,便于排查问题。

LogLevel INFO
# 调试时可用 VERBOSE 或 DEBUG

日志通常记录在 /var/log/secure 或 /var/log/auth.log。

13. 禁用DNS反向解析(UseDNS)

关闭DNS查询可加快连接速度。

UseDNS no

否则sshd会尝试解析客户端IP的主机名,可能造成延迟。

14. 其他安全相关选项

  • StrictModes yes:检查用户主目录和.ssh目录权限
  • IgnoreRhosts yes:忽略.rhosts和.shosts文件
  • X11Forwarding no:禁用X转发,除非需要图形界面
  • PrintMotd no:登录时不显示/etc/motd内容

这些选项有助于减少潜在攻击面。

修改sshd_config后,务必使用以下命令测试配置语法,避免服务启动失败:

sudo sshd -t

确认无误后重启服务:

sudo systemctl restart sshd

基本上就这些关键配置。合理设置能显著提升SSH服务的安全性和稳定性。

以上就是Linux SSH配置文件sshd_config详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号