保持 Bash 脚本中的 ssh 连接处于活动状态

保持 Bash 脚本中的 ssh 连接处于活动状态

我有一个 bash 脚本,其中有一些逻辑需要在本地和远程完成。因此,需要进行多次 ssh 和 rsync(用于数据传输)调用,例如:

 command_0
 rsync ... # Data to remote
 ssh remote command_1
 rsync ... # Receive results
 ...
 # Above pattern is repeated multiple times

我遇到了一些由于 而导致 ssh 连接中断的问题ssh_exchange_identification: Connection closed by remote host。上述脚本还针对不同的数据集异步触发了约 30 次。如何在脚本调用期间保持 ssh 连接处于活动状态以减少 ssh 连接的创建?

提前致谢!

答案1

您可以通过启用 TCPKeepALive 来实现这一点。在命令行中添加类似以下内容

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=50 

或者您可以修改〜/ .ssh / config并添加

主持人 *

  服务器存活间隔 50

相关内容