首页 > 解决方案 > 为什么我不能通过 SSH 克隆 Azure Dev Ops 存储库?

问题描述

我工作的一个组织在 Azure Dev Ops 中托管了一个 git 存储库。我可以访问这个 repo,我可以通过 https 克隆它。但是,我想改用 ssh。在 Azure Dev Ops 的安全选项卡中,我已将我机器上 .ssh 文件夹中的公钥添加到我的帐户中。我没想到必须做任何进一步的事情,但是当我尝试克隆时,系统提示我输入密码,这是我没想到的。我用于 https 访问的密码不起作用。我的登录密码也没有,我结束了一个看起来像这样的会话......

git clone myorg@vs-ssh.visualstudio.com:v3/myorg/my%20org%20project1.0/myrepo

Cloning into 'myrepo'...
myorg@vs-ssh.visualstudio.com's password:
Permission denied, please try again.
myorg@vs-ssh.visualstudio.com's password:
Permission denied, please try again.
myorg@vs-ssh.visualstudio.com's password:
myorg@vs-ssh.visualstudio.com: Permission denied (password,publickey).
fatal: Could not read from remote repository.

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

为什么要输入密码?为什么被拒绝访问?

标签: gitazure-devops

解决方案


在 Windows 上,如果使用非默认密钥(即不是 C:/users/username/.ssh/id_rsa),那么您必须运行ssh-add.cmdGit 中包含的用于 Windows 安装的脚本,然后(这是让我绊倒的部分up) 从同一个 shell 窗口克隆 repo 。我试图在第二个命令提示符窗口中运行克隆命令,但没有获得 ssh-add 的好处。

查看 的内容ssh-add.cmd,它似乎是通过设置一个临时的 SSH_AUTH_SOCK 变量来工作的,所以这是有道理的。


推荐阅读