记一次Linux Git Push 缺少公钥权限的问题
目录
警告
本文最后更新于 2023-03-27,文中内容可能已过时。
问题
已配置 Github
公钥,但是依然无法拉取私人项目或更新子项目,使用 ssh -T git@github.com
命令返回正常。
来源
这种情况一般是文件夹所有权的问题,当你使用sudo git clone
命令克隆项目,使用的是 root
账户,所以创建的文件夹所有者也是管理员账户,所以我们直接操作是没有任何权限的。
同时在拥有私人子模块(submodules)时,使用sudo git submodule update
克隆子项目,会出现缺少公钥权限,这种情况是由于/root/.ssh/
文件夹当中缺少私钥。
解决办法
其一就是把当前用户的~/.ssh/
文件夹复制粘贴到/root/.ssh/
当中即可解决问题。
其二使用sudo chown <用户>:<用户> -R 文件夹
修改文件夹所有人。
其三则是尽量不要使用sudo
执行git
命令。 参考 是否应将 sudo 命令或提升的权限与 Git 一起使用?