git - 通过 SSH 从 VSTS 克隆 Git 存储库需要密码!意外

标签 git ssh azure-devops

目标是在不提供任何密码的情况下在 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/

相关文章:

由于macOS 11或更高版本需要奇怪的错误,因此Gitk无法正常工作

git - 如何在 Bluehost 上安装 git 仓库

c# - 如何解决 SSH.NET 中的 'Bad packet length' 错误?

git - 安全地在 Git 存储库中存储 SSH key 的 Ansible 设计模式?

azure - Azure管道如何从内部TFS和外部Git获取源代码?如何更新代理?

azure-devops - 将多个 Azure Devops 项目移至一个项目(同一组织)

git - git 目录太大

子模块的git公共(public)子模块

git - 用于推送到 master 分支的 Gerrit 电子邮件通知

某些存储库的 Azure Devops 权限