目标是在不提供任何密码的情况下在 Visual Studio Team Services 中克隆一个 Git 存储库。进一步的目标是完全以非交互方式完成,根本没有任何提示。
问题描述:
操作系统是 Windows Server 2016。假设我的用户名是 batman。
我已经在 Windows 中的 C:\Users\batman\.ssh\id_rsa
中设置了私钥(没有密码)。
我已经为我在 VSTS 的用户帐户添加了公钥。一切顺利。
我想克隆存储库,VSTS Web UI 为我提供了存储库的 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:
所以首先它要求输入 key 密码,我只是按 Enter 键,但最后一行令人困惑。我应该输入什么密码,为什么要输入密码?怎么让它不问呢?如何使克隆命令根本不询问任何内容?
最佳答案
首先,它会要求您提供私钥的密码:
Enter passphrase for key '/c/Users/batman/.ssh/id_rsa':
根据您的评论(在现已删除的答案中),我了解到您曾使用 PuTTy 生成 key ,我怀疑您的 key 格式不正确 ( maybe this will help? )( or this? ),确保它以:
-----BEGIN RSA PRIVATE KEY-----
以
结尾-----END RSA PRIVATE KEY-----
无论如何,公钥验证失败,所以它会询问mycompany
帐户的密码:
mycompany@mycompany.visualstudio.com's password:
公钥认证成功就不会出现这种情况。
关于git - 通过 SSH 从 VSTS 克隆 Git 存储库需要密码!意外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868402/