我工作的组织在Azure Dev Ops中托管了一个git存储库。我可以访问此存储库,并且可以通过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.
为什么要求输入密码?为什么拒绝访问?
答案 0 :(得分:1)
在Windows上,如果使用非默认密钥(即非C:/users/username/.ssh/id_rsa),则必须运行Git for Windows安装中包含的脚本0
,然后(和这是让我绊倒的部分),从同一外壳窗口复制存储库。我试图在第二个命令提示符窗口中运行clone命令,但没有获得ssh-add的好处。
查看ssh-add.cmd
的内容,似乎可以通过设置一个临时SSH_AUTH_SOCK变量来工作,因此这很有意义。
答案 1 :(得分:0)
是的,这是克隆URL的问题。为了帮助Windows使用它的凭据管理器,他们在克隆URL中添加了var request = {
params: {
name : JSON.parse(localStorage.getItem('name'))
}
}
const res = await axios.get(`http://localhost:8080/onlineshopping/view/category/products`,request);
dispatch({
type: GET_CATEGORY_PRODUCTS,
payload: res.data
});
};
。这样就变成了用户名。
如果您使用不带@RequestMapping(value = "/view/category/products")
public Map<String, Object> viewProducts(
@RequestParam(value = "name[]", required = false) List<String> name,
HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> mapproducts = new HashMap<String, Object>();
for (String Str : name) {
System.out.println("name " + Str);
}
的克隆网址,则可能会起作用。