[转载]ssh几个超时参数

本文介绍了SSH连接自动超时的几个关键参数,包括客户端和服务端的`ClientAliveInterval`、`ClientAliveCountMax`、`ServerAliveInterval`,以及bash下的`TMOUT`和csh下的`autologout`。通过调整这些参数,可以实现SSH连接在无操作一段时间后的自动断开,增强系统安全性。

转自:http://www.361way.com/ssh-autologout/4679.html

 

在安全需要下,一些 ssh 主机连接后,等待一段时间不操作会自动操时退出。除了我们日常用到的TMOUT参数外,还有另外ClientAliveInterval、ClientAliveCountMax、autologout 几个和操时相关的参数。这里分别介绍下。

一、ssh相关配置

ssh的相关配置主要是解决连接自动断开的问题,其又分为客户端和服务端部分。涉及到的参数有ClientAliveInterval(服务端参数)、ClientAliveCountMax(服务端参数)、ServerAliveInterval(客户端参数)

1、sshd_config服务端参数

ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。而ClientAliveInterval 300表示5分钟发送一次,然后客户端响应,这样就保持长连接了。

ClientAliveCountMax,默认值3。ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值,就自动断开,正常情况下,客户端不会不响应。

 

 
  1. ClientAliveInterval 300
  2. ClientAliveCountMax 3
  3. 按上面的配置的话,300*3=900秒=15分钟,即15分钟客户端不响应时,ssh连接会自动退出。

具体可以参看man sshd_config 获取更多参数信息。

2、ssh_config客户端配置

 

 
  1. # vim /etc/ssh/ssh_config
  2. 找到里面的ServerAliveInterval 参数,如果没有你同样自己加一个就好了。参数意义相同,都是秒数,比如5分钟:
  3. ServerAliveInterval 300

以上在客户端配置后,就会有反空闲设置,即每5分钟会自动和服务端做一次确认。windows下的ssh客户端软件可以使用如下方法配置:

SecureCRT的配置如下图:

ssh-config.pnguploading.4e448015.gif转存失败重新上传取消ssh-config

putty设置如下:

putty -> Connection -> Seconds between keepalives ( 0 to turn off ),默认为0,改为60。

 

二、bash下的TMOUT参数

默认情况下,一般我们不会修改sshd_config和ssh_config配置达到自动退出的控制,而是通过shell 自身带的变量操作。常见的bash shell 下有一个TMOUT参数可以设置自动超时时间,配置方法如下:

 

 
  1. #vi /etc/profile
  2. TMOUT=180 //设置三分钟超时
  3. export TMOUT

配置完成后source /etc/profile 生效,执行echo $TMOUT查看。具体更多变量可以man bash查看

三、csh下的自动超时

csh shell 下的自动超时变量是autologout,具体设置方法如下:

 

 
  1. # vim /etc/csh.cshrc
  2. # 添加如下行:
  3. set autologout=30

修改完成后,退出连接再重新登陆即可生效。更多可以使用man csh 获取。

使用 SSH 私钥在 Putty 中出现超时问题,可尝试以下解决方法: ### 检查网络连接 网络不稳定是导致超时的常见原因。可通过以下操作排查: - 检查本地网络连接是否正常,尝试打开网页或进行其他网络操作。 - 若使用无线网络,尝试切换到有线网络,以提高网络稳定性。 - 联系网络管理员,确认网络是否存在限制或故障。 ### 调整 Putty 配置 可对 Putty 的一些参数进行调整,以避免超时: - **调整超时时间**:在 Putty 的配置窗口中,选择“Connection”类别,在“Seconds between keepalives”字段中输入一个合适的值,如 30 或 60,这将使 Putty 每隔一段时间向服务器发送一个保持活动的数据包,防止连接因长时间无数据传输而断开。 - **增加连接超时时间**:在“Connection”类别下,找到“Connect timeout”字段,适当增加该值,例如将其从默认的 10 秒增加到 30 秒或更长,以给连接更多的时间来建立。 ### 检查 SSH 服务器配置 SSH 服务器的配置也可能影响连接的稳定性: - **检查服务器的 SSH 服务是否正常运行**:可通过登录服务器,使用命令(如 `systemctl status sshd` )来检查 SSH 服务的状态。 - **调整服务器的超时设置**:编辑服务器的 SSH 配置文件(通常是 `/etc/ssh/sshd_config` ),找到并修改以下参数: ```plaintext ClientAliveInterval 60 ClientAliveCountMax 3 ``` `ClientAliveInterval` 表示服务器每隔多少秒向客户端发送一个保持活动的数据包,`ClientAliveCountMax` 表示在断开连接之前允许的最大无响应次数。修改后,保存文件并重启 SSH 服务(如 `systemctl restart sshd` )。 ### 检查私钥文件 私钥文件的问题也可能导致连接超时: - **确保私钥文件的权限正确**:在本地系统中,私钥文件的权限应该设置为只有所有者可以读写,例如使用命令 `chmod 600 private_key_file` 。 - **检查私钥文件是否损坏**:可尝试使用其他工具(如 `ssh-keygen -l -f private_key_file` )来验证私钥文件的完整性。如果私钥文件损坏,需要重新生成或获取正确的私钥。 ### 防火墙和安全组设置 防火墙或安全组规则可能会阻止 SSH 连接: - **检查本地防火墙设置**:确保本地防火墙允许 SSH 流量通过。例如,在 Windows 系统中,可在防火墙的入站规则中添加允许 Putty 访问网络的规则;在 Linux 系统中,可使用 `iptables` 或 `firewalld` 等工具开放 SSH 端口(通常是 22 )。 - **检查服务器端的防火墙和安全组设置**:确保服务器端的防火墙或安全组允许来自客户端的 SSH 连接。例如,在云服务器上,需要在安全组规则中添加允许 SSH 流量的规则。 ### 尝试其他 SSH 客户端 如果以上方法都无法解决问题,可以尝试使用其他 SSH 客户端,如 OpenSSH(在 Linux 或 macOS 系统中自带)或 MobaXterm,以确定问题是否出在 Putty 本身。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值