Возможно ли SSH ControlMaster с Cygwin на Windows?
Кто-нибудь мог использовать контрольный мастер с cygwin в Windows для создания нескольких сеансов без повторного входа в систему? Мне нужно автоматизировать последовательность шагов SSH, но не могу просить пользователя каждый раз вводить требуемый токенированный пароль.
Я сконфигурировал свой cygwin ssh_config следующим образом:
Host *
ControlMaster auto
ControlPath /tmp/%[email protected]%h:%p
И я получаю следующее сообщение об ошибке на master, когда я запускаю второе соединение, которое снова запрашивает пароль:
mm_receive_fd: no message header
process_mux_new_session: failed to receive fd 0 from slave
Я видел других с этой проблемой, но я не могу найти решение для этого.
Кто-нибудь сделал эту работу?
Ответы
Ответ 1
По-видимому, после долгих поисков можно сделать вывод, что в настоящее время это невозможно. Это были единственные ссылки, которые я нашел:
https://stackoverflow.com/questions/17140457/imitating-a-shared-ssh-session-for-scripts-on-windows "... но нет реализации OpenSSH для Windows, которая делает это (дескрипторы файлов через сокеты unix не работают в Cygwin)".
и
http://gcc.gnu.org/wiki/SSH_connection_caching "К сожалению, если вы используете OpenSSH в Cygwin, вы не сможете воспользоваться преимуществами кэширования соединений, поскольку Cygwin в настоящее время не поддерживает дескриптор файла, проходящий через сокеты домена unix".
Ответ 2
Для Cygwin это все еще кажется невозможным, но в Windows это возможно. У меня это работает в Windows, используя wsl-ssh-stant и Windows Ubuntu Bash/WSL).
В bash установите socat. Затем запустите wsl-ssh-showant, как он говорит, затем с циклом while и export. Если у вас есть ваш контрольный мастер в настройке .ssh правильно, и создается каталог для ControlPath, он должен работать.
Ответ 3
Конечно, это возможно. Начните свой мастер с
cygstart --hide ssh -M -S /your/socketfile server
после этого вы можете получить доступ с помощью
ssh -S /your/socketfile server …