关于ssh:Git clone private repo,权限被拒绝

Git clone private repo, permission denied

我正在尝试克隆另一个开发人员拥有的私有存储库。我没有与这个开发人员的直接通信。他们给我发送了他们的用户名-id ru rsa.pub文件和他们的用户名-priv.key.ppk文件。我知道ppk文件是专门针对putty ssh客户机的。有人能告诉我如何克隆他们的回购协议吗?我已经用自己的帐户配置了git,我想我必须将它们的ssh密钥添加到ssh/config文件或其他文件中,但我有点像ssh noob。

1
2
3
4
git clone [email protected]:theirusername/pro.git
Cloning into 'pro'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

编辑:我能够访问Github存储库并将自己添加为合作者。即使这样,我也不能

1
git clone [email protected]:theirusername/pro.git

然而

1
git clone https://github.com/theirusername/pro.git

工作了。


They sent me a theirusername-id_rsa.pub file and a theirusername-priv.key.ppk

首先,告诉他们不要这样做。之所以这样称呼公钥/私钥是有原因的。让多个实例(个人或计算机)共享同一个密钥是不对的。您应该为每个单独的键使用一个单独的键,以便在它们之间建立1对1的关联。

如果他们不能将您添加为合作者(这需要为您自己设置一个用户帐户),那么他们应该将您的密钥添加到他们自己的配置文件中。我强调的是"您的密钥",因为您应该生成它并只发送公钥。私密的人应该永远对别人保密。

也就是说,当你有一个ppk,一个putty私钥文件时,你有两个选择。首先是使用putty的pagent加载密钥文件,并让git使用putty的plink作为ssh客户机。您可以通过将GIT_SSH环境变量设置为到plink.exe的路径,例如C:\Program Files\PuTTY\plink.exe来实现这一点。

第二个选项是将PPK转换为OpenSSH密钥文件,git附带的ssh客户机可以使用该文件。您可以通过使用puttygen打开ppk并选择"conversions/export openssh key"来实现这一点。您应该将文件保存为C:\Users\\.ssh\id_rsa以使git使用它。


你需要:

  • 为了确保定义了环境变量HOME(如果从Git bash会话执行Git操作,则即使在Windows上也应该为您定义该变量)
  • 要将您的ppk密钥转换为id_rsa和id_rsa.pub,请参阅"如何告诉Git for Windows在哪里可以找到我的私人rsa密钥?".
  • 定义配置文件或将密钥添加到ssh代理,如"指定执行shell命令时要使用的专用ssh密钥"中所述。


只需将下面的代码复制粘贴到BAT文件中并执行它

echo y_"c:程序文件(x86)puttyplink.exe"[email protected] xxxx退出

这是您设备的IP地址。

这是你设备的密码