У меня есть сценарий 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 ответ1

-1

Вы можете сделать это, включив TCPKeepALive. Добавьте что-то вроде следующего в вашу командную строку

ssh -o TCPKeepAlive=yes -o ServerAliveInterval=50 

Или вы можете изменить ваш ~/.ssh/config и добавить

Хост *

  ServerAliveInterval 50

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .