`ssh [...] sleep 3` (с sshpass) не закрывается никогда

`ssh [...] sleep 3` (с sshpass) не закрывается никогда

Я открываю SSH-туннель программно, с помощью:

sshpass -p "my_password" ssh -fN -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes remote_user@remote_server.tld -L 13306:127.0.0.1:3306 sleep 3

и работает как надо, но не закрывается после 3 секунд бездействия.

Я беру SSH PID и явно завершаю соединение, когда оно завершается; но я предпочитаю версию sleep, которая может автоматически закрывать туннель.

Использовать для sshpassподдержания туннеля открытым или я что-то делаю не так?

решение1

Ты используешь

-f

Запрашивает переход ssh в фоновый режим непосредственно перед выполнением команды. Это полезно, если ssh собирается запросить пароли или парольные фразы, но пользователь хочет, чтобы это было в фоновом режиме. Это подразумевает -n. Рекомендуемый способ запуска программ X11 на удаленном сайте — это что-то вроде ssh -f host xterm.

и

-N

Не выполнять удаленную команду. Это полезно только для переадресации портов.

Который переходит в фоновый режим перед выполнением команды (которая подавляется). Поэтому он остается в фоновом режиме. Он sleepникогда не запускается и ждет, когда его остановят.

Связанный контент