如何保持ssh连接关闭?

时间:2016-11-21 16:59:43

标签: linux ssh connection

我正在尝试运行可能需要1个多小时的命令而且我已尝试添加

while sleep 300; do echo "1"; done

这样它就不会因为闲置而断开我的作用。

但是,有时候出于另一个原因它仍然断开连接,它说远程主机关闭了*.*.*.*连接。

我想它只是一个默认的时间限制或我真的不知道的东西?

有没有办法增加时间或只是让它永远不会断开连接?

如果没有办法在关闭ssh连接后保持该命令运行?

2 个答案:

答案 0 :(得分:2)

如果您无法更改服务器设置,则应通过指定频繁的保持活动信号来启动ssh,以完成命令。例如。

SELECT Date() AS [Period End], Sum((([PrevInv]+[PrevOrder]-[OnHand])*[Cost])) AS Used, [Enter Sales] AS Sales, Sum((([PrevInv]+[PrevOrder]-[OnHand])*[Cost])/[Enter Sales]) AS FoodCost
FROM Inventory
WHERE (((Inventory.Cost)>0))
GROUP BY Date(), [Enter Sales];

应发出" alive"每隔20秒向服务器发出一次信号,以便保持连接活动

答案 1 :(得分:0)

对我来说,SSH 连接曾经挂断过。

以下解决方案对我有用。现在 SSH 连接始终保持有效。

来自服务器:


  1. /etc/ssh/sshd_config 处编辑文件
$ sudo vi /etc/ssh/sshd_config
  1. 在文件中添加或启用这一行。
ClientAliveInterval 60
  1. 保存文件并重启sshd服务
$ sudo service sshd restart

来自本地机器/客户端:


  1. /etc/ssh/ssh_config 处编辑文件
$ sudo vi /etc/ssh/ssh_config
  1. 将此行添加到文件中。
ServerAliveInterval 60
  1. 保存文件

关于这些参数

ServerAliveInterval:客户端在向服务器发送空包之前等待的秒数(以保持连接有效)。

ClientAliveInterval:在向客户端发送空数据包之前服务器将等待的秒数(以保持连接有效)。

<块引用>

重要:每当对产品进行任何修改时 例如,请确保创建备份。