У меня есть вопрос, на который я не смог найти ответ. У меня есть два компьютера, оба из которых работают под управлением Ubuntu 12.04. Я держу один из своих компьютеров дома и использую SSH для подключения к нему с другого («удаленного») компьютера. Удаленный компьютер может без проблем подключаться к домашнему компьютеру. На удаленном компьютере также установлено значение SetAliveInterval, равное 60, в / etc / ssh / ssh_config, так что соединение не прекратится, если я на мгновение отойду от компьютера.
Иногда мое интернет-соединение на удаленном компьютере прерывается. Из-за прерываний Интернета мой SSH-туннель закрывается (конечно). Когда я восстанавливаю подключение к Интернету и снова подключаюсь к домашнему компьютеру, используя новый туннель SSH, я вижу, #ps ax
что старый процесс подключения SSH все еще выполняется. Это проблема, потому что я использую зашифрованный домашний каталог на домашнем компьютере, который не позволяет перешифровать файлы до тех пор, пока это (ныне мертвое) соединение SSH не будет разорвано.
Есть ли способ установить sshd_config на домашнем компьютере, чтобы он автоматически определял, когда соединение прервалось, и прерывал его?
Вы можете попробовать mosh , замену SSH, построенную поверх SSH. Он поддерживает и роуминг, и прерывистое подключение, поэтому сеанс Mosh (SSH) будет просто продолжаться с того места, на котором вы остановились, всякий раз, когда ваше подключение к Интернету восстанавливается после прерывания.
Вам нужно будет установить Mosh на обеих машинах.
Ссылки:
источник