权限被拒绝(公钥):使用Github的多个存储库和RSA密钥

时间:2011-04-22 18:55:50

标签: git ssh github rsa

制作时我收到Permission denied(公钥)错误 一个ssh git@github.com请求。我的感觉是,这是因为 它无法找到我的.ssh文件夹。这是我的背景 到目前为止:

我以前配置github工作 我的存储库:repo1。我跟着 github网站上的新手指南和 将我的回购设置为:

/家庭/ CodeSherpa / repo1 /

这里有安全资料:

/home/CodeSherpa/.ssh

我配置了id_rsa和id_rsa.pub 根据指南并把 我公开的github上的公钥 键。然后我用

进行了测试

ssh git@github.com

并做了一些push / pull / etc命令 一切都很好。

现在,我想添加一些存储库。 我已经移动了我的本地目录结构 看起来像这样:

/家庭/ CodeSherpa /回购/

* repo1 * repo2 * repo3

我已经在github上设置/配置了匹配的存储库。

我是管理员,应该可以访问所有内容。我想给 一位开发人员访问repo1& repo2但不是repo3和另一个开发者 访问所有回购。

当我尝试初始化新存储库时,

我当前的问题 在我的本地文件系统上我一直得到:

“权限被拒绝(公钥)” (使用ssh git@github.com)

我的问题我是否必须为每个新存储库提供本地RSA密钥? 目前,我的.ssh文件夹是我最初为我的第一个回购设置的地方:

/home/CodeSherpa/.ssh

我是否需要这样做:

> /home/CodeSherpa/repos/repo1/.ssh/id_rsa
> /home/CodeSherpa/repos/repo2/.ssh/id_rsa
> /home/CodeSherpa/repos/repo3/.ssh/id_rsa

然后为每个回购设置三个唯一的公钥 在github上?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

通常,每个用户只需要一个密钥,而不是每个存储库。我的建议是:

  • 删除计算机中的所有密钥
  • 删除github中的所有密钥
  • 再次按照流程一次

但是如果您打算每个存储库拥有一个用户,那么每个用户需要一个ssh密钥。要做到这一点:

  • 按照github中的说明进行3次,并为每个密钥指定一个不同的文件名。
  • 如果您想使用其中一个键,请运行ssh-add [path_to_user_1_key] **从这一点开始,您将以user_1
  • 身份连接到github
  • 如果您需要以其他用户身份进行连接,例如user_2,请运行ssh-add -Dssd-add [path_to_user_2_key]

例如,我对github和bitbucket使用相同的ssh密钥,每个服务器上都有一些repos。

答案 1 :(得分:1)

  • 在github中(实际上在大多数地方),ssh密钥绑定到一个用户帐户(因为它用于验证/验证github,你真的是你声称的那个),而不是一个回购。
  • 您应该能够将任何其他github用户添加为您的任何项目的协作者。
  • 添加协作者是如何在github上控制对项目的访问。您无需为此创建多重ssh密钥。
  • 您可以通过转到“存储库管理” - >向项目添加协作者。 “合作者”。