设置SSH空闲超时退出时间【Linux】

博客介绍了保障SSH会话安全的原因及做法。原因是降低未授权用户访问风险、防止多用户同时登录修改文件。做法包括编辑配置文件,设置超时时间和活跃用户数;针对SSH暴力破解,可更换默认端口号、设置IP白名单。

一,原因

1,降低未授权用户访问其他用户ssh会话的风险

2,防止多用户同时登录对文件修改编辑

二,如何做?

1,编辑/etc/ssh/sshd_config

2,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。

ClientAliveInterval 600
ClientAliveCountMax 2

10分钟空间超时 退出,最多两个活跃用户登录

3,拓展ssh暴力破解

定义:不断通过ssh尝试密码登录服务器

基本防御:更换默认的22端口号,设置IP白名单,只有特定IP的用户才可以访问。

转载于:https://my.oschina.net/songms/blog/3073337

<think>嗯,用户想了解如何配置SSH服务器以限制空闲登录时间并自动退出会话。这个问题很实用,尤其对于服务器管理员来说,合理设置空闲超时能有效提升安全性。参考引用资料发现,解决方案主要集中在服务器端配置。引用[1]提到空闲超时机制是服务器配置引起的,引用[4]和[5]详细给出了具体参数:ClientAliveInterval和ClientAliveCountMax。这两个参数正是控制空闲超时的关键。用户可能正在管理Linux服务器,需要平衡安全性和操作便利性。从引用内容看,用户可能遇到过两种超时情况:SSH连接超时和Shell会话超时。需要区分处理:首先处理SSH连接超时:-ClientAliveInterval定义服务器检查客户端活动的时间间隔-ClientAliveCountMax定义允许的连续无响应次数-计算实际超时时间=间隔×(次数+1)然后是Shell会话超时:-涉及TMOUT环境变量-在/etc/profile中配置-设置为0表示不超时用户可能还需要考虑特殊情况,比如某些自动化任务不能中断,这时需要排除特定账户。另外修改配置后必须重启sshd服务,这个关键步骤不能遗漏。考虑到用户后续可能遇到的问题,可以准备几个相关问题:比如如何为特定用户设置例外,或者如何验证配置是否生效等。这些都能帮助用户深入理解SSH空闲超时机制。</think>以下是配置SSH服务器空闲超时自动退出的详细方法: ### 一、服务器端配置(推荐) 1. **修改SSH配置文件** 用root权限编辑`/etc/ssh/sshd_config`: ```bash sudo vi /etc/ssh/sshd_config ``` 添加/修改以下参数: ```bash # 服务器每60秒向客户端发送一次保活请求 ClientAliveInterval 60 # 客户端连续3次无响应则断开连接(实际超时时间 = 60*(3+1)=240秒) ClientAliveCountMax 3 ``` > 📝 **公式**:实际超时时间 = `ClientAliveInterval` × (`ClientAliveCountMax` + 1) 2. **重启SSH服务生效** ```bash sudo systemctl restart sshd # Systemd系统 # 或 sudo service ssh restart # SysVinit系统 ``` --- ### 二、Shell会话超时补充配置 若SSH连接后出现`timed out waiting for input: auto-logout`提示: 1. 编辑全局配置文件: ```bash sudo vi /etc/profile ``` 2. **修改或注释TMOUT变量**: ```bash # 设置为0禁用超时,或指定秒数(如300秒=5分钟) export TMOUT=0 ``` 3. 立即生效: ```bash source /etc/profile ``` --- ### 三、客户端临时设置(连接时生效) 连接时指定参数: ```bash ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@host ``` --- ### ⚠️ 重要注意事项 1. **参数含义** - `ClientAliveInterval`:服务器检测客户端活跃的**秒数** - `ClientAliveCountMax`:允许的**连续无响应次数** - `TMOUT`:Shell会话空闲超时**秒数**(0=禁用) 2. **安全建议** - 生产环境建议设置超时(推荐5-15分钟): ```bash ClientAliveInterval 300 ClientAliveCountMax 2 # 300*(2+1)=900秒=15分钟 ``` - 高安全场景可启用`TMOUT`(如`export TMOUT=600`) 3. **配置验证** 查看当前SSH参数: ```bash sshd -T | grep -E "aliveinterval|alivecountmax" ``` [^1]: SSH空闲超时由服务器端配置控制 [^2]: 客户端参数可临时覆盖超时设置 [^3]: Shell会话超时需单独配置`TMOUT` --- ### 相关问题 1. 如何为特定用户设置不同的SSH超时时间? 2. 超时设置后客户端未自动断开可能是什么原因? 3. 除了超时设置,还有哪些提升SSH安全性的关键配置? 4. 如何排查SSH连接缓慢或频繁断开的问题?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值