我正在尝试使用以下命令通过受密码保护的无头服务器通过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
然后重试克隆。
最终可行的解决方案是打开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/