Удаленное выполнение скрипта с использованием таймаута ssh через 10 минут - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь выполнить скрипт удаленной оболочки на машине linux с другой машины linux, используя SSH

. В большинстве случаев он работает отлично, однако у меня есть скрипт, которыйэто имеет бездействие более 10 минут, мое соединение с удаленной машиной потеряно.

Сценарий удаленной оболочки

test.sh

echo "testing"
sleep 3600
echo "done testing"

И вот как я называю этот скрипт

➜  ~ ssh -o ConnectTimeout=3600 -o BatchMode=yes -o StrictHostKeyChecking=no gaurang.shah@host_name /home/gaurang.shah/test.sh
*******************************************************************************
*                                                                             *
*          Unauthorized use of this system is strictly prohibited             *
*                                                                             *
*******************************************************************************

testing
Connection to host_name closed by remote host.

Не должен ли этот параметр поддерживать соединение в течение 3600 секунд?

-o ConnectTimeout = 3600

1 Ответ

0 голосов
/ 14 декабря 2018

ConnectTimeout указывает время ожидания (в секундах), используемое при подключении к SSH-серверу

Вместо этого необходимо установить ServerAliveInterval.Чтобы установить его для всех пользователей, вы должны изменить /etc/ssh/ssh_config (с правами суперпользователя).Чтобы разрешить только вашему пользователю, измените ~/.ssh/config

Host *
    ServerAliveInterval 3600
    ServerAliveCountMax 2

Если вы можете изменить серверную часть, вы можете сделать так, чтобы ваш сервер поддерживал все соединения с клиентами, добавив следующее к /etc/ssh/sshd_config:

ClientAliveInterval 3600
ClientAliveCountMax 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...