目标是克隆中的Git存储库,而不提供任何密码。进一步的目标是完全非交互地完成它,完全没有任何提示。
问题描述:
操作系统是Windows 2016。假设我的用户名是蝙蝠侠。我已经在C:\Users\batman\.ssh\id_rsa
的Windows中设置了私钥(没有密码)。
我在VSTS为我的用户帐户添加了公钥。一切都很好。
我想克隆这个存储库,而VSTS为我提供了一个到存储库的SSH URL。我在执行以下命令时使用它:
git clone ssh://mycompany@mycompany.visualstudio.com:22/MyProject/_git/MyRepo
答复:
Cloning into 'MyRepo'...
Enter passphrase for key '/c/Users/batman/.ssh/id_rsa':
mycompany@mycompany.visualstudio.com's password:
因此,首先,它要求输入密码,我只需按Enter键,但最后一行是令人困惑的。我应该输入什么密码,它为什么要问它?怎么才能让它不问呢?如何使克隆命令完全不问任何问题?
发布于 2020-03-20 17:42:31
使用以下命令遍历日志:
GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo
在大多数情况下,问题在于.ssh目录中缺少默认名称id_rsa的私钥。您可以通过允许默认名称"id_rsa“来解决这个问题,方法是在使用ssh-keygen生成密钥时不在键名提示符中指定任何内容。如果必须使用不同的键,可以通过使用命令指定其路径来做到这一点:
ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
最后,确保您实际上正在复制路径的ssh版本,而不是https (请确保路径以ssh://开头,而不是https://),并且在将公钥复制到服务器的密钥列表时没有任何空白。
https://stackoverflow.com/questions/43868402
复制相似问题