使用 PuTTYgen 了解 SSH 私钥和 public 密钥
Understanding SSH private and public keys with PuTTYgen
我使用 PuTTy keygen 创建了一个 public 密钥。我将 public 密钥复制到 david.pub
并发送给将密钥放在服务器上的开发人员 (vps),这样我就可以克隆一个存储库。当我创建 public 密钥时,我输入了一个密码。当我尝试克隆时发生这种情况:
$ 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.
存储库存在。这是我的配置文件的样子:
Host my_app
User git
HostName xx.xx.xxx.xx
PubkeyAuthentication yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/david.pub
我该如何解决这个问题才能克隆存储库?我是 GIT 的新手,我需要重新创建 public 密钥吗?有人告诉我创建一个 public 密钥,我还需要一个私钥吗?
我是一名前端开发人员,所以这很令人困惑。
这不是 Git 问题,只是 ssh。您可以通过尝试 ssh 进入机器来更轻松地调试问题。 ssh my_app
应该会给你同样的问题。
public 密钥不应该有密码,这应该提示您有问题。它一遍又一遍地询问你,因为你输入了密钥没有的密码。您的私钥有密码。
在 ssh 中有两个密钥,public 一个 (~/.ssh/david.pub
) 和一个私有的 (~/.ssh/david
)。没有私人密钥,您不可能创建 public 密钥。私钥是您的秘密,它与您同在,并且应该受到密码保护以防被盗。 public 键位于您要登录的服务器上。私钥用于解锁用 public 加密的东西(反之亦然)。
问题出在这一行:
IdentityFile ~/.ssh/david.pub
这应该是您的 私钥, ~/.ssh/david
.
我使用 PuTTy keygen 创建了一个 public 密钥。我将 public 密钥复制到 david.pub
并发送给将密钥放在服务器上的开发人员 (vps),这样我就可以克隆一个存储库。当我创建 public 密钥时,我输入了一个密码。当我尝试克隆时发生这种情况:
$ 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.
存储库存在。这是我的配置文件的样子:
Host my_app
User git
HostName xx.xx.xxx.xx
PubkeyAuthentication yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/david.pub
我该如何解决这个问题才能克隆存储库?我是 GIT 的新手,我需要重新创建 public 密钥吗?有人告诉我创建一个 public 密钥,我还需要一个私钥吗?
我是一名前端开发人员,所以这很令人困惑。
这不是 Git 问题,只是 ssh。您可以通过尝试 ssh 进入机器来更轻松地调试问题。 ssh my_app
应该会给你同样的问题。
public 密钥不应该有密码,这应该提示您有问题。它一遍又一遍地询问你,因为你输入了密钥没有的密码。您的私钥有密码。
在 ssh 中有两个密钥,public 一个 (~/.ssh/david.pub
) 和一个私有的 (~/.ssh/david
)。没有私人密钥,您不可能创建 public 密钥。私钥是您的秘密,它与您同在,并且应该受到密码保护以防被盗。 public 键位于您要登录的服务器上。私钥用于解锁用 public 加密的东西(反之亦然)。
问题出在这一行:
IdentityFile ~/.ssh/david.pub
这应该是您的 私钥, ~/.ssh/david
.