S SH через HTTP прокси с паролем на Windows с mingw64 - PullRequest
0 голосов
/ 27 марта 2020

Я использую Portable Git x64 на Windows. Я запускаю все мысли Git Bash. Мне нужно s sh на сервер, который доступен только через HTTP прокси. Аутентификация для сервера осуществляется через pubkey, аутентификация для прокси - через пароль, имена пользователей различны. My ~/.ssh/config:

Host server
  Hostname server_hostname
  User server_username
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand /c/PortableGit/mingw64/bin/connect.exe -H proxy_username@proxy_ip:12345 %h %p

Проблема начинается, когда s sh пытается открыть окно, в котором необходимо ввести пароль для HTTP-прокси, войти в систему с ssh -vvv server:

$ ssh -vvv server
OpenSSH_7.9p1, OpenSSL 1.1.1a  20 Nov 2018
debug1: Reading configuration data /c/Users/username/.ssh/config
debug1: /c/Users/username/.ssh/config line 1: Applying options for server
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Executing proxy command: exec /c/PortableGit/mingw64/bin/connect.exe -H proxy_username@proxy_ip:12345 server_hostname 22
debug1: identity file /c/Users/username/.ssh/id_rsa type 0
debug1: identity file /c/Users/username/.ssh/id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
'C:\PortableGit\mingw64\libexec\git-core\git-gui--askpass' is not recognized as an internal or external command,
operable program or batch file.
FATAL: Cannot decide password for proxy authentication.ssh_exchange_identification: Connection closed by remote host

git-gui--askpass есть, но по какой-то причине он не поднят s sh. Запуск file 'C:\PortableGit\mingw64\libexec\git-core\git-gui--askpass' дает:

$ file 'C:\PortableGit\mingw64\libexec\git-core\git-gui--askpass'
C:\PortableGit\mingw64\libexec\git-core\git-gui--askpass: POSIX shell script, ASCII text executable

Содержимое git-gui--askpass идентично https://github.com/git/git/blob/3bab5d56259722843359702bc27111475437ad2a/git-gui/git-gui--askpass

Я пытался запустить этот скрипт через командную строку, он отлично работает:

enter image description here

Также я попытался указать другую программу как SSH_ASKPASS=/mingw64/libexec/git-core/git-askpass.exe (что я считаю глупостью). Это также не работает:

...
fatal: failed to acquire credentials.

Я пытался ввести пароль в ~/.ssh/config как:

ProxyCommand /c/PortableGit/mingw64/bin/connect.exe -H proxy_username:proxy_password@proxy_ip:12345 %h %p
                                                                     ^^^^^^^^^^^^^^^

, но s sh.

* это игнорирует 1036 * Кроме того, я попытался подключиться через MobaXterm, и это прекрасно работает - меня попросили ввести пароль прокси-сервера, и после его ввода я подключился. Кроме того, после подключения в MobaXterm я могу подключиться в командной строке, поскольку прокси-сервер не запрашивает пароль в течение некоторого времени. Но по другой причине я не могу использовать MobaXterm.

Есть идеи, как заставить его работать?

...