我在Github上有一个私人存储库,用于我正在进行的一个项目。到目前为止,我只在家里的台式机上工作,但我刚刚买了一台笔记本电脑,我正在尝试设置它,以便我可以在任何一台电脑上工作,并进行推/拉更改。

我在我的Github账户上为笔记本电脑添加了一个新的SSH密钥,并且成功地克隆并更改了我设置的公共测试回购。但是,我不能克隆私人回购。为了克隆私有回购,我需要在命令行中做什么特别的事情吗?我是否需要为我的笔记本电脑设置一个新的GitHub帐户,并将自己设置为合作者?

我使用的命令是git clone git://github.com/username/reponame.git


当前回答

如果您确定您没有启用2FA,您有权限访问回购,并且回购存在,那么您的git@github.com可能是用另一个帐户登录的。

检查一下你能做什么

ssh -T git@github.com

如果显示另一个帐户,要解决此问题:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git

其他回答

这招对我很管用:

Git克隆https://username@github.com/username/repo_name

除了MK Yung的回答之外:如果您不想收到403 Forbidden响应,请确保将部署到回购的部署键中的任何地方的公钥添加到部署键中。

2023年更好的解决方案

使用个人访问令牌可以工作,但是您可能更喜欢将令牌访问范围缩小到您想要克隆的存储库

Github引入了细粒度的个人访问令牌,它可以做到这一点。

以下是需要遵循的步骤:

在右上角菜单中选择“设置”

在接下来的页面中,从左侧选择“开发人员设置”

然后在下一页的“个人访问令牌”下选择“细粒度令牌”

然后点击“生成新令牌”按钮

在下一页中,您将被要求为您的令牌提供一个名称,您也可以选择Repository访问。如果您只想指定一个存储库,那么请选择“仅选择存储库”,然后从下拉菜单中选择您的存储库

之后,在同一页面中,您需要指定Repository权限。如果你只是想克隆一个私有回购,将“contents”设置为“Access: read-only”

最后点击“生成令牌”按钮

获得令牌后,复制它并运行命令

git clone https://oauth2:<YOUR-TOKEN-HERE>@github.com/<your_user>/<your_repo>.git

就是这样。

我遇到过这个问题几次,每次我登陆这个页面,尝试了所有的东西,都失败了!

这是因为我启用了2FA !!

根据https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled

如果启用了双重身份验证,或者正在访问使用SAML单点登录的组织,则必须为HTTPS Git提供个人访问令牌,而不是输入密码。

按照此链接创建一个访问令牌 git克隆https://github.com/username/repo_name.git(默认的git回购链接已经足够好了!) 输入您的用户名,并使用访问令牌作为密码!!


更新:

如果您不介意在命令行中暴露您的访问令牌,您还可以将访问令牌粘贴为用户名,然后单击回车(不需要密码)。 讨厌复制和粘贴访问令牌一遍又一遍? 使用git配置凭证。辅助存储(不要在你不信任的机器上这样做)

私有克隆url的形式为git@github.com:username/repo.git -也许你需要使用git@而不是git://?

url是只读的,看起来私有回购不允许这种形式的访问。