我正在尝试使用以下命令通过受密码保护的无头服务器通过SSH进行Git克隆。我在OpenSSH中使用Cygwin。我可以使用Cygwin对服务器进行交互式SSH,而不会出现问题。此问题仅在Cygwin中发生,而在Windows命令提示符中不发生。

git clone ssh://[email protected]:path/to/repo/reponame

我没有收到任何形式的密码提示。我收到以下错误:
Cloning into 'reponame'...
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
Permission denied, please try again.
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
[email protected]: Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我假设这是由SSH和Cygwin设置引起的。

到目前为止,我尝试过的不成功的“解决方案”是:
  • 使用以下格式的命令

    git clone ssh://用户名:密码@ server.edu:path / to / repo / reponame
  • 进入

    未设置GIT_ASKPASS
    未设置SSH_ASKPASS

  • 然后重试克隆。
  • 在本地计算机上打开x转发服务器,然后重试克隆。

  • 最终可行的解决方案是打开Windows命令提示符,然后使用它代替Cygwin终端。 Cygwin中的哪些设置可能导致了此问题,我该如何解决?

    最佳答案

    首先,考虑使用CMD(或git bash)中的Git for Windows:您完全不需要Cygwin。这意味着使用简化的PATH从git bash测试ssh。

    set G=c:\path\to\latest\git
    set PATH=%G%\bin;%G%\usr\bin;%G%\mingw64\bin
    set PATH=%PATH%;C:\windows\system32;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\
    

    我了解它已经在CMD中运行,但是使用简化的PATH通常是一种验证它是否与我们需要的功能兼容的好习惯(而不是因为其他一些程序PATH)

    其次,在Cygwin中(如果必须使用它),请至少尝试使用ssh -Tv ssh://[email protected]来查看是否仍然存在相同的错误,以及详细输出是否还有其他线索。
    检查$HOME值(echo $HOME)以查看$HOME/.ssh是否具有您的私有(private)/公用(id_rsa / id_rsa.pub)密钥。

    关于git - Cygwin中通过SSH进行的Git克隆不提示输入密码,而是提示错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50073084/

    10-09 05:06