繁体   English   中英

即使在将公共 ssh 密钥添加到 Git 集线器之后,也无法将更改从我的本地系统推送到原点

[英]Can't push changes from my local system to origin, even after adding public ssh key to Git Hub

我有一个新系统(MacBook Pro)并希望对其进行设置,以便它可以直接推送到我在 GitHub 上的远程存储库。 我遵循的步骤是:

  1. 使用命令ssh-keygen -t rsa生成了一个 ssh 密钥。
  2. id_rsa.pub中的内容复制到我的 Github 帐户的 SSH 密钥区。
  3. 在 GitHub 上创建了一个存储库。
  4. Copied the repository url (https) into my existing local project using git remote set-url origin https://github.com/username/repo.git .
  5. 使用git pull origin master进行拉取(工作没有错误)。
  6. 使用git push origin master新更改时,出现以下错误。
remote: Permission to UserName/repo-name.git denied to name.
fatal: unable to access 'https://github.com/UserName/repo-name.git/': The requested URL returned error: 403

问题
1. 为什么在Github 中添加SSH 密钥后仍然出现权限被拒绝错误? 在添加 SSH 密钥后,GitHub 不应该认为我的系统是受信任的设备吗?
2. 如何将我的系统添加为受信任设备,以免出现权限被拒绝错误?

您使用ssh配置将原点设置为https 尝试将您的遥控器设置为ssh代替:

git remote set-url git@github.com:USERNAME/REPOSITORY.git
  1. 为什么即使在将 SSH 密钥添加到 Github 后,我仍然收到权限被拒绝错误?

因为您使用的是 SSH 密钥,这与 HTTPS 身份验证无关(基于用户名/密码)

如何将我的系统添加为受信任的设备,以免出现权限被拒绝错误?

设置正确的 SSH URL

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
           ^^^^^^^

这是区分大小写的,用户名必须是您的存储库所在的 GitHub 用户名。
它与git config user.name / user.email根本不用于身份验证,仅用于提交作者身份)

或者您保留当前的 HTTPS URL,但您检查是否有凭证管理器缓存错误的凭证:

git config credential.helper

例如,对于经理 one ,您可以拒绝与github.com关联的旧凭据(GitHub 用户名/密码)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM