Git 总是出现权限拒绝的情况(个人笔记)

此文仅代表我自己的查阅和理解并作为笔记,并不能作为指导内容。

问题产生的环境:
在 Homestead 开发环境下做完了 实战入门 ,开始向 实战进阶 进发
新建 Laravel 项目并且在我的 Github 创建一个名为 LaraBBS 的仓库之后之后执行

$ git init 
$ git add -A
$ git commit -m '初始化'
$ git remote add origin git@github.com:#####/LaraBBS.git
$ git push origin master

这时候就会提示我没权限

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

接下来是我的解决思路:

  • 方案一:
    翻阅到第一课的 Github 部署部分执行以下代码(既然做了就做全…)

        # 检查 git 配置
        $ git config user.name
        $ git config user.email
    
        # 重新生成一次公钥
        $ eval  "$(ssh-agent -s)" 
        $ ssh-add ~/.ssh/id_rsa
        $ cat ~/.ssh/id_ras.pub

    然后复制 id_ras.pub 的公钥内容,在 Github 的 SSH and GPG keys 选项里新增一个 SSh Keys ,这时候再执行

     $ ssh -T git@github.com    # 检测是否通讯成功
     $ git push origin master

    成功的将代码托管到 Github 的 LaraBBS 库里了!

    接下来我去百度为什么每个项目都要单独执行一次 eval "$(ssh-agent -s)" 而这句话是什么意思,以下内容来自我的查询到有意义的解释
    生成新 SSH 密钥并添加到 ssh-agent
    但是这并没有解决为什么每个项目都要再添加一遍 SSHKey 的问题。

  • 方案二:

     $ vim /etc/bash.bashrc

    在打开的文件最后换行添加两句

     $ eval "$(ssh-agent -s)"
     $ ssh-add ~/.ssh/id_rsa

    之后 Git 就会自己添加 SSHKey 到密钥里面去了
    那么问题来了…
    GitHub 上面还要再换一次吗?:cry:

    请大家帮我解惑

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

我也是,有时候用homestead的时候,向github上push的时候,突然发现不能提交,没权限,后来就总是执行一下 eval "$(ssh-agent -s)" 还挺麻烦的的,有什么一劳永逸的办法,这样设置ssh之后就不用输入密码或者用什么其他的命令了

5年前 评论

请问楼主 你的疑问验证解决了吗?

是不是每建立一个新项目都需要追加新的ssh密钥?

我猜想应该是不需要追加新密钥的吧

毕竟本地生成了新密钥会覆盖掉旧的密钥文件 导致Github上以前项目的ssh密钥失效 这样的神奇操作 GitHub应该不会犯

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!