Подвеска SSH

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

Обе машины работают под управлением Ubuntu 11.04. Машина университета запускает openssh-server .

Дома я выполнял следующие инструкции:

  1. откройте сеанс ssh:

     ssh -D 9999 -C user@my_addr.com 
  2. Затем я настроил Firefox для подключения пользователя SOCKS5 на порт 9999 localhost .

Это работает некоторое время. Затем он неожиданно висит соединение, и терминал просто замерзает.

Что мне здесь не хватает?

  • Настройка туннелирования ssh для просмотра с использованием IP-адреса компьютера в частной сети
  • ограничение квоты на передачу TCP пользователя
  • Как перенаправить резервный сетевой интерфейс через туннель SSH?
  • Безопасный доступ к удаленному туннелю SSH
  • Указание исходящего интерфейса для туннеля SSH
  • Невозможно принудительно выполнить беспроблемную аутентификацию ssh при переадресации портов
  • Почему wget не работает через туннель ssh? Что делает прокси-сервер для предотвращения использования ssh-client?
  • Удаленный рабочий стол через обратный туннель SSH для замены TeamViewer
  • 4 Solutions collect form web for “Подвеска SSH”

    Я также предлагаю использовать autossh со сценарием, например:

    У меня это в кронтабе:

     @reboot while true; do sleep 10; autossh -i /some/location_not_default.pem -D 9999 -L 1028:localhost:3128; done 

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

    Вы можете попробовать установить переменные ClientAliveInterval и ClientAliveCountMax в конфигурационном файле sshd для значений, которые вам подходят.

    Из руководства:

     ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, secshd will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only. 

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

    РЕДАКТИРОВАТЬ

    1. Раньше я запускал его на screen , который имеет два преимущества: запуск (вид) в фоновом режиме и возможность вернуться к сеансу позже, чтобы проверить его статус и при необходимости отладить, например:

       screen -d -m -S my-autossh-tunnel autossh your_autossh_args 

      Это запустится в фоновом режиме. Если вы хотите проверить процесс autossh , вы можете подключиться к этому сеансу screen -R my-autossh-tunnel с помощью screen -R my-autossh-tunnel

    2. Я использовал пустую кодовую фразу для удобства, но для дополнительной безопасности я использовал следующие параметры в authorized_keys на удаленном конце:

       command="/bin/false",no-agent-forwarding,no-X11-forwarding,no-pty` 

      Таким образом, туннель может быть установлен с помощью ключа, и оболочка не может быть использована для чего-либо еще.

    У меня была та же проблема с использованием VNC через SSH-туннель. Часто зависания происходят, как с помощью шпатлевки (windows) и openssh (linux).

    С помощью шпатлевки я скопировал профиль подключения и изменил несколько вариантов, чтобы увидеть, что произошло, и больше не зависает! Изменения в шпаклере:

    Подключение: UNCHECK «отключить алгоритм Нагле» (я оставил «включить TCP keepalives» и «секунды между keepalives» на 30) SELECT «версия интернет-протокола» IPv4 (вместо «auto»)

    Соединение – SSH: ПРОВЕРИТЬ "Включить сжатие"

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

    Замораживание происходило в основном при отправке больших обновлений по VNC, например, прокрутка окна. Возможно, алгоритм Negle с ограниченными возможностями залил сервер слишком большим количеством небольших пакетов или, возможно, потому, что ipv6 был отключен на удаленном сервере VNC, но не на других хостах. Это потребует еще нескольких тестов с отдельными вариантами, чтобы понять это.

    Linux и Unix - лучшая ОС в мире.