如何根据GitHub上的SSH密钥在存储库上定义不同的权限?

如何根据GitHub上的SSH密钥在存储库上定义不同的权限?,git,github,ssh,permissions,repository,Git,Github,Ssh,Permissions,Repository,我在GitHub上有一个帐户,用于我的私人项目,也用于处理多个项目 现在我想在服务器上签出组织的私有存储库。 为此,我需要一个SSH密钥 我可以将我的私钥复制到服务器上,但这是一个非常糟糕的主意。。。另一种方法是创建一个假的/bot GitHub帐户(),该帐户只用于将代码拉入服务器。好的,但它看起来仍然像一个解决办法 一种干净的方法是创建一个新的私钥,然后为其创建一个plublic密钥,将其添加到GitHub,然后限制使用该密钥连接到GitHub的用户的权限(例如,该用户应该只能从组织Z的存储

我在GitHub上有一个帐户,用于我的私人项目,也用于处理多个项目

现在我想在服务器上签出组织的私有存储库。
为此,我需要一个SSH密钥

我可以将我的私钥复制到服务器上,但这是一个非常糟糕的主意。。。另一种方法是创建一个假的/bot GitHub帐户(),该帐户只用于将代码拉入服务器。好的,但它看起来仍然像一个解决办法

一种干净的方法是创建一个新的私钥,然后为其创建一个plublic密钥,将其添加到GitHub,然后限制使用该密钥连接到GitHub的用户的权限(例如,该用户应该只能从组织Z的存储库X和Y中提取)

在GitHub上可以吗?
如何定义依赖于SSH密钥的GitHub存储库上的权限?回答以下问题:您不能

解释答案更多的是关于安全性和权限管理,而不是Git本身

如果您后退一步,看看身份验证/授权链,您就会明白原因

你有一个GitHub帐户,MyGitHub帐户。要通过web门户进行身份验证,请使用用户名和密码凭据。要通过Git+SSH对自己进行身份验证,请使用SSH密钥。
这就是关键所在:一个秘密凭证,允许GitHub将您识别为MyGitHubAccount的用户。一旦您通过MyGitHubAccount身份验证,GitHub将检查是否允许您从存储库读/写。
这是具有读/写权限的帐户

因此,如果您希望使用不同的权限,则需要创建另一个帐户。在任何其他系统上都是这样,所以我不明白为什么这看起来是一个糟糕的解决方案


SSH密钥的唯一用途是识别用户。您可以拥有多个密钥的原因是,您不应该四处复制密钥,而应该在要连接到GitHub的每台计算机上创建一个新密钥。这样,如果某台特定计算机的密钥被盗或被篡改,则可以撤销该密钥

我不太确定我是否理解你的问题。如果s/o希望向您添加对回购协议的读取权限,则应向您添加并仅授予您的读取权限。如果您想授予他人对您的回购协议的读取权限,请添加此人或公司的帐户并仅授予读取权限。谢谢您的评论!我想要的是能够(至少)将代码从GitHub上的repo拉到服务器上,而无需为服务器创建代理。好的,我现在明白了。我想解决这个问题的方法就是:创建一个机器用户(至少我是这么做的)。