Linux 下 SSH 远程超时解决方案

时间:2021-03-13 16:44:43

Linux 下 SSH 远程超时解决方案

今天突然看到一个问题说是如何解决SSH远程超时的问题。

Linux 下 SSH 远程超时解决方案

找了一点资料。用于解决这个需求~

第一种:OpenSSH 配置文件设置

Linux 下 SSH 远程超时解决方案

位于112行的 "ClientAliveInterval "以及位于113行的"ClientAliveCountMax"意义解释如下:

  • ClientAliveInterval:即The length of time Server Sent Client ,服务器发给客户端时间间隔。
  • ClientAliveCountMax:即Server Sent Client NOT REPLY,服务器发给客户端,客户端无响应。

俩行,简单说就是:一个决定多久找你,一个决定找你次数。

注意要重启SSH服务才能生效。如果上种你觉得不能理解或者不能体现水平。看下面这种~

第二种: Shell 脚本编写实现永不超时

首先,欣赏这行代码:

Linux 下 SSH 远程超时解决方案

、#!/usr/bin/expect

告诉操作系统脚本里的代码使用那一个shell来执行

、set timeout 60s

使用了set命令设置了超时时间为60s。

、spawn ssh user@host

首先spawn是expect内部命令。作用就是给ssh新进程创建新expect,用来传递交互指令也实现了让expect控制的用处!

、interact

交互命令,用来打开用户与产生进程之间通信的命令。

、send

用于expect 脚本正在监控的进程生成输入。send合并选项以发送给指定的产生的过程"-i",缓慢地发送"-s"(在串行通信中,为了不使缓冲区溢出)

关于expect:

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量,同时它也可以传递。说到底就是一个脚本语言,可以帮助系统管理员进行自动终端交互的好朋友.

第三种:环境变量临时改变

Linux 下 SSH 远程超时解决方案

同样你也可以写入$HOME/.profile文件,永久生效!

最后:

你来想想,我们还有第四种吗?想想服务器要检测客户端还活着没,客户端能看些啥?

试试“ping”吧,也许你还有第四种~