2

我正在尝试使用另一个用户克隆到 gerrit 服务器,username2但是它失败了Permission denied (publickey)。我尝试按照服务器故障问题“如何为另一个用户创建 ssh 密钥?”的建议生成一个 ssh 密钥。

以下步骤无效。我错过了什么?

  • ssh-keygen -f ~/.ssh/username2
  • cp ~/.ssh/username2.pub ~/.ssh/authorized_keys
  • 将 username2.pub 添加到 tech-gerrit.sd.company.com
  • ~/.ssh/config
      托管 tech-gerrit.sd.company.com
      主机名 tech-gerrit.sd.company.com
      端口 29418
      用户用户名2
      身份文件 /Users/username1/.ssh/username2
    
  • 尝试使用以下命令进行克隆
    git clone ssh://username2@tech-gerrit.sd.company.com:29418
    
  • 以 username2 身份登录 gerrit 并将 username2.pub 添加到
4

3 回答 3

2
IdentityFile /Users/username1/.ssh/username2.pub

这可能不是您唯一的问题,但您可能在这里指定了错误的文件。扩展名为.pub的密钥文件包含密钥的公共部分。没有.pub的相应文件包含密钥的私有部分。该IdentityFile指令需要私钥文件的名称,而不是公钥文件的名称。尝试将此指令更改为:

IdentityFile /Users/username1/.ssh/username2
                                            ^-- note no ".pub"

看看情况是否更好。

于 2018-11-11T21:13:26.723 回答
1

通常,Git SCM 旨在git用作 SSH 克隆的用户。SCM 中的所有用户公钥都传播给该用户。因此,您尝试克隆哪个用户并不重要,只要在 SCM 中存在与公钥匹配的私钥即可。

您可以通过运行检查密钥是否有效ssh git@tech-gerrit.sd.company.com:29418,这应该打印一个问候语,该问候语与私钥匹配

IE:对于我来说,使用 GitHub

➜  ~ ssh -T git@github.com
Hi praveenprem! You've successfully authenticated, but GitHub does not provide shell access.

GitLab

➜  ~ ssh -T git@gitlab.com
Welcome to GitLab, @prav!
➜  ~

比特桶

➜  ~ ssh -T git@bitbucket.org
logged in as pravd.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
➜  ~

如您所见,所有主要的 Steam SCM 系统都使用相同的 SSH 用户,即git@.

唯一需要使用用户名的情况是在通过 HTTP/HTTPS 克隆存储库时。在这种情况下,您通常会使用username@.

希望这可以帮助。

也不要忘记将私钥加载到代理。

运行ssh-add -l,如果你得到The agent has no identities.尝试添加密钥ssh-add

于 2018-11-11T20:14:18.353 回答
1

最好列出您使用的确切命令,以便我们还可以查找拼写错误并知道您遵循了问题 323958 中的哪些答案。此外,了解 company.com 上使用的软件和配置也会有所帮助。

一些事情要尝试:

  • GitHub 和 GitLab 设置为用作用git户名。也许 company.com 也这样做。尝试在您的命令中替换username2为。gitgit clone
  • 确保使用 Gerrit 网站上指定的 RSA 密钥 -ssh-keygen -t rsa -f ~/.ssh/username2
  • ~/.ssh/config中的Host行应该与命令行上使用的名称匹配,所以- 否则 git 和 ssh 根本不会使用您在~/.ssh/config中的条目。Host tech-gerrit.sd.company.com
  • 再次阅读Gerrit ssh 文档
于 2018-11-10T07:31:18.860 回答