使用 PuTTYgen 了解 SSH 私钥和公钥

use*_*134 0 ssh putty ssh-keys

我使用 PuTTy 密钥生成器创建了一个公钥。我将公钥复制到david.pub并发送给将密钥放在服务器(vps)上的开发人员,以便我可以克隆存储库。当我创建公钥时,我输入了一个密码。当我尝试克隆时,会发生这种情况:

$ git clone my_app:money_app.git new_money_app Cloning into 'new_money_app'... Enter passphrase for key '/c/Users/User1/.ssh/david.pub':

我输入我设置的密码,这行重复了 3 次 Enter passphrase for key '/c/Users/User1/.ssh/david.pub':

然后显示后

 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

存储库存在。这是我的配置文件的外观:

Host my_app
User git
HostName xx.xx.xxx.xx
PubkeyAuthentication yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/david.pub
Run Code Online (Sandbox Code Playgroud)

我如何解决这个问题,以便我可以克隆存储库?我对 GIT 完全陌生,是否需要重新创建公钥?我被告知要创建一个公钥,我还需要一个私钥吗?

我是前端开发人员,所以这很令人困惑。

Sch*_*ern 5

这不是 Git 问题,它只是 ssh。您可以通过尝试 ssh 进入机器更轻松地调试问题。 ssh my_app应该给你同样的问题。

公钥不应该有密码,这应该提示您有问题。它一遍又一遍地询问您,因为您输入了密钥没有的密码。你的私钥有密码。

在 ssh 中有两个密钥,公共密钥 ( ~/.ssh/david.pub) 和私有密钥( ~/.ssh/david)。如果没有私钥,您就无法制作公钥。私钥是您的秘密,它与您同在,并且应受密码保护,以防被盗。公钥位于您要登录的服务器上。私钥用于解锁用公钥加密的东西(反之亦然)。

问题是这一行:

IdentityFile ~/.ssh/david.pub
Run Code Online (Sandbox Code Playgroud)

这应该是您的私钥~/.ssh/david