Настройка туннеля SSH в существующем соединении из сценария

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

Обычно вы можете делать:

<enter> ~C ssh> -L 8080:localhost:80 

Но мне нужно иметь возможность сделать это из запущенного скрипта python. Я пытался:

 print("\n~C -L 8080:localhost:80") 

но, к сожалению, это была слишком простая мысль.

Итак, как мне настроить туннель из сценария Python?

(как побочный вопрос, мне также необходимо предотвратить ssh -N -L x:host:y host.example.com , но все же разрешить настройку портов для моей настраиваемой оболочки).

  • Переслать все порты VNC с помощью SSH
  • SHH Туннелирование принимается только на некоторых портах
  • Обратное подключение к серверу SSH
  • Как устройство cisco знает, подключаюсь ли я через telnet или ssh?
  • Правило iptables для передачи UDP через туннель SSH
  • Как начать два процесса, поддерживаемых свиньями? Итак, первый заканчивается, когда второй заканчивается?
  • CentOS с AutoSSH, уточнение переадресации портов
  • SSH-туннелирование - локальные и удаленные случаи использования
  • One Solution collect form web for “Настройка туннеля SSH в существующем соединении из сценария”

    Попробуйте использовать sshtunnel lib.

    Пример:

     from sshtunnel import SSHTunnelForwarder from time import sleep with SSHTunnelForwarder( ('localhost', 2222), ssh_username="vagrant", ssh_password="vagrant", remote_bind_address=('127.0.0.1', 3306)) as server: print(server.local_bind_port) while True: # press Ctrl-C for stopping sleep(1) print('FINISH!') 

    или CLI:

     python -m sshtunnel -U vagrant -P vagrant -L :3306 -R 127.0.0.1:3306 -p 2222 localhost 
    Interesting Posts

    Увеличьте количество линий, прокручиваемых клещей колесика мыши, везде

    самый быстрый способ grep jar-файла для определенного имени в нем?

    Ли Linux прекращает обработку, связанную с графическим интерфейсом, когда мы удаляем экран рабочего стола из подключения из шкафа (процессорный блок)?

    Как получить только имя файла с помощью sed

    Настройка звука HDMI забывается после простоя

    Невозможно установить яркость и гамма яркости xrandr

    сжимать логротат

    сравнить файлы на основе двух столбцов и добавить поле

    Как отключить USB-накопитель или карту MMC под Linux?

    Разделить файлы с помощью awk и сгенерировать результаты в другом каталоге

    Ищете ресурсы: например, C doc для чтения файлов и их атрибутов? (В Linux)

    Я не могу отправить почту на адрес Gmail, используя Postfix

    Запись на stdin процесса

    Консольный экран без X11

    имя хоста для компьютеров в локальной сети

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