autossh передал порты, оставленные открытыми на сбое соединения

Я пытаюсь установить обратный туннель SSH от своей домашней сети. У меня есть он так, чтобы autossh соединился успешно однажды (и только однажды) на перезагрузку. Я передаю удаленные порты своей локальной машине так, чтобы я мог соединиться когда далеко от дома. Я нахожусь в спутниковом Интернете и нахожусь позади брандмауэра двойного NAT, таким образом соединение непосредственно с моей домашней сетью является обреченным на неудачу.

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

Не имели никакой удачи с Google, или поиски форума так надеюсь, что кто-то здесь мог бы указать на меня в правильном направлении.

Я настроил сервер и локальную машину после руководства здесь:

http://linuxaria.com/howto/permanent-ssh-tunnels-with-autossh

Мой сценарий подключения извлечен ниже и включен в/etc/rc.local:

su -s /bin/sh autossh -c 'autossh -M 20000 -f -i /home/autossh/.ssh/id_rsa -N -R 99999:localhost:22 autossh@remotehost.com'

Аплодисменты и заранее спасибо за любую справку!

Corey

2
задан 30 January 2016 в 06:12

1 ответ

Хорошо... Частичное решение, tho, я все еще не уверен, что оно полностью разрешено. Я внес следующие изменения, и вещи, по крайней мере, все еще соединены за ночь. Я не уверен, снова соединится ли это успешно, после того как сессия завершается как бы то ни было.

  1. Добавленный следующие строки к удаленному серверу sshd_config:

    ClientAliveInterval 600
    ClientAliveCountMax 12
    
  2. Измененный rc.local сценарий для запуска autossh следующим образом (добавленные опции ServerAliveInterval и ServerAliveCountMax):

    su -s /bin/sh autossh -c 'autossh -M 20000 -f -i /home/autossh/.ssh/id_rsa -o "ServerAliveInterval 120" -o "ServerAliveCountMax 5" -N -R 99999:localhost:22 autossh@remotehost.com'
    

я также нашел, что соединение использования GatewayPort было ненадежно. Вместо:

user@machine1 $ ssh -p 99999 remotehost.com

я вхожу в удаленный хост непосредственно и затем соединяюсь с портом 99999 на localhost, крыле:

user@machine1 $ ssh remotehost.com
user@remotehost $ ssh -p 99999 localhost

Это, кажется, более надежно. Порт шлюза имеет тенденцию зависать. Но если я соединяюсь на двух шагах как выше, я все еще прохожу. Отправит назад с обновлениями, после того как у меня есть шанс видеть, снова соединяется ли он после того, как сессия отбрасывает.

, Надо надеяться, это могло бы помочь другим!

Corey

1
ответ дан 2 December 2019 в 04:59

Другие вопросы по тегам:

Похожие вопросы: