Проблема 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 открыт только для соединений с локального хоста, и администраторы не открывают никаких дополнительных портов, говоря, что «любой может использовать это».
источник
Ответы:
У вас довольно интересная проблема.
Реальным решением было бы сначала обратиться за помощью к сисадмину.
Если это не вариант, следующая лучшая вещь - это использовать библиотеку pyCharm libssh или что-то еще, что она использует (я немного погуглил и не могу понять), проанализировать ваш ~ ~ / .ssh / config '.
Если это не возможно, вы могли бы быть в состоянии запустить свой собственный демон SSH на удаленном прослушивания хоста на адрес замыкания на себя и подключиться к нему с местным вперед.
Чтобы настроить непривилегированный демон ssh (скопированный по ссылке в ответе SF ):
Теперь перенаправьте на него локальный порт (здесь вы будете входить с 2fa):
И прямой pyCharm для
localhost:2230
. Вы также можете настроить авторизацию пары ключей на свой пользовательский sshd.Обратите внимание, что это длинный выстрел, и ваш системный администратор может не оценить его.
Существует большая вероятность, что pyCharm уже использует OpenSSH для реализации ssh. Если это так, то добавление поддержки мультиплексирования в pyCharm будет намного проще, чем предложенный мной обходной путь.
источник
Match Address 127.0.0.1 PasswordAuthentication yes
вероятно, следует отдельныйMatch
в отдельной строке, чтобы закрыть раздел, если вы не добавляете это в конец файла.