Это довольно долгий путь, но как лучше всего получить ssh, если не удается установить соединение, выполните команду, а затем повторите попытку подключения.
Чтобы поделиться своим примером использования, я использую ssh-туннель через ssh-туннель для доступа к компьютеру за брандмауэром, что означает в моей ~/.ssh/config следующее:
Host tunnel
HostName 192.168.1.27
Host target
HostName localhost
Port 2003
и чтобы ssh target
работал, мне сначала нужно иметь ssh -N -L 2003:localhost:22 tunnel
, выполняемый в фоновом режиме. Я решил сделать это с помощью одной команды: screen -d -m ssh -N -L 2003:localhost:22 tunnel
.
Не слишком раздражает запуск этой команды в случае сбоя ssh target
, но было бы неплохо, если бы ssh мог каким-то образом автоматически запускать ее при сбое соединения.