使用公私钥进行Git克隆

3
我已经尝试了很久,想使用公钥和私钥进行身份验证来克隆git仓库,而不是使用密码。我在Windows上使用puttygen生成了我的密钥。无论是从windows还是从linux都无法登录,一直出现以下错误:
git clone [git repo directory] Cloning into papers... Enter passphrase for key '/.ssh/id_dsa': Permission denied (publickey).
我最初创建了带有密码的私钥,但是这并没有起作用。之后我重新保存了不带密码的私钥(使用puttygen),但仍然无法工作。
如何解决这个问题?我已经努力想解决这个问题了很长时间,但现在完全卡壳了。
非常感谢!

你需要更详细地解释你正在做什么,才能得到更多的帮助。"克隆一个git账户"是什么意思? 登录不了什么?你也没有提及关于你的公钥以及你对它所做的事情,这可能让你使用私钥来访问...无论它是什么。 - Ryan Stewart
你在远程仓库中写入了你的公钥吗? - William Seiti Mizuta
我的意思是,我在服务器上有一个Git存储库。我的公钥已经被添加到其中(由维护服务器的人员添加,因此在这方面不应该有问题)。我想从服务器将Git存储库克隆到我的本地系统。 - tree-hacker
是的,公钥已经添加到远程仓库了。我尝试过不同的仓库,并且尝试从Windows和Linux克隆,但都没有成功。 - tree-hacker
1个回答

2
  1. 你必须了解两件事:私钥可以用putty和openssh兼容格式创建,但这些格式不能自由交换(客户端工具只能理解putty或openssh其中之一),Linux只能理解openssh类型的密钥
  2. 你必须在客户端使用额外的工具,提供基于密钥的非交互式身份验证请求

第1点和第2点的结果

Windows客户端:运行pageant,将putty的私钥加载到其中(输入密钥密码)。可能需要将Git ssh客户端从系统更改为plink。

Linux客户端:在Windows主机上加载putty-type私钥到puttygen中,并导出为openssh-key。将此文件保存在Linux机器中的/.ssh/id_dsa。运行ssh-agent,输入密码一次。ssh-agent将在会话期间为所有请求使用密钥的密码。

PS:通过Github SSH相关文档和测试Shell调试问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接