Проблема 1.0
Я работаю на сервере, который поддерживает только двухфакторную аутентификацию (аутентификация ключевой пары отключена). Поэтому каждый раз, когда мой SFTP-клиент хочет загрузить файл, он запрашивает у меня токен ... через 3 минуты, который становится UX not_very_nice.
Решение 1.0
Итак, я узнал о мультиплексировании SSH, и теперь я могу открыть одно мастер-соединение вручную (из терминала), а все остальные ssh-соединения могут быть мультиплексированы сверху, например, так:
$ ssh example_com_master
Verification code: (/me enters the token code)
Password: (/me enters my pass)
Welcome to Ubuntu 14.04 blah blah....
Last login: Wed Oct 1 11:24:15 2014 from 12.34.56.78
$
Затем из другого терминала или другого программного обеспечения:
$ ssh my.example.com
Last login: Wed Oct 1 16:34:45 2014 from 12.34.56.78
$
Итак, миссия выполнена, больше не нужно вводить токен 2FA. И нет пароля, в этом отношении, SSH FTW!
~ / .Ssh / конфигурации:
Host example_com_master
HostName my.example.com
User username
PubkeyAuthentication no
ControlMaster yes
ControlPath ~/.ssh/sockets/example_com
ControlPersist 10
Host my.example.com
HostName my.example.com
User username
PubkeyAuthentication no
ControlMaster no
ControlPath ~/.ssh/sockets/example_com
Задача 2.0 (TLDR)
Некоторое программное обеспечение (например, PyCharm IDE) использует свою собственную библиотеку SSH / двоичную / что угодно! Это означает, что ничего, что я ввожу, не ~/.ssh/config
повлияет на это, AFAIK.
Это моя текущая проблема: есть ли способ «обмануть» такое программное обеспечение, используя уже существующее мастер-соединение?
Идея: поскольку вы обычно можете настроить программное обеспечение для использования другого порта для подключения, мне было интересно, возможно ли установить какое-либо туннелирование, которое мультиплексирует входящие соединения на существующий мастер. Но моя глупость подвела меня ...
редактировать:
Основная цель - подключиться к удаленному интерпретатору / отладчику Python.
редактировать 2:
Все порты закрыты, кроме 22 и 80. Однако можно сделать:
remote$ ssh localhost:2222
(password or securekey login, both work)
remote$
но 2222 открыт только для соединений с локального хоста, и администраторы не открывают никаких дополнительных портов, говоря, что «любой может использовать это».