【问题标题】:Understanding SSH private and public keys with PuTTYgen使用 PuTTYgen 了解 SSH 私钥和公钥
【发布时间】:2016-03-08 11:35:58
【问题描述】:

我使用 PuTTy keygen 创建了一个公钥。我将公钥复制到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.

存储库存在。这是我的配置文件的样子:

Host my_app
User git
HostName xx.xx.xxx.xx
PubkeyAuthentication yes
PreferredAuthentications publickey
IdentityFile ~/.ssh/david.pub

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

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

【问题讨论】:

标签: ssh putty ssh-keys


【解决方案1】:

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

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

在 ssh 中有两个密钥,一个是公共的(~/.ssh/david.pub),另一个是私有的(~/.ssh/david)。如果没有私钥,您就无法制作公钥。私钥是你的秘密,它一直在你身边,它应该受到密码保护,以防被盗。公钥在您希望登录的服务器上。私钥用于解锁用公钥加密的东西(反之亦然)。

问题出在这一行:

IdentityFile ~/.ssh/david.pub

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

【讨论】:

  • 谢谢!我忘了做一个私钥。使用 PuTTy keygen,我可以加载公钥(我下载了它)并从中生成私钥吗?还是我必须再次生成两个密钥?
  • @user892134 如果您可以从公钥中创建私钥,这将破坏拥有公钥的意义。你得再做一次。没有私钥就无法创建公钥,但是 PuTTygen 会让你单独保存它们,这没有任何意义,这可能是你一开始遇到这个问题的原因。
猜你喜欢
  • 2023-03-24
  • 2013-03-24
  • 2016-09-15
  • 2017-02-10
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2013-07-09
  • 2015-07-11
相关资源
最近更新 更多