2 siegecat siegecat 于 2016.04.22 22:45 提问

root用户可以git clone,但普通用户就不能git clone

ubuntu 14 LTS OS
按照网上的教程,ssh-keygen后,复制id_rsa.pub内的内容到github的ssh key中
并使用ssh -T git@github.com没问题。

然后使用命令 eval "$(ssh-agent)"打开agent
添加私钥ssh-add ~/.ssh/id_rsa

但使用git clone git@github.com/username/test.git
却失败,显示permission denied(publickey)
fatal: Could not read from remote repository
Please make sure you have the correct access rights.

但发现如果几点奇怪的地方:
使用http地址来git clone没问题
也使用命令测试 ssh-add -l能看到密钥
也使用命令ssh -v git@github.com也能看到密钥队。

最奇怪的是,我把用户换成root用户,执行完全相同的步骤,使用ssh协议的git clone却完全没问题。求解答。

3个回答

devmiao
devmiao   Ds   Rxr 2016.04.22 23:56
oyljerry
oyljerry   Ds   Rxr 2016.04.23 10:37

你的public key等是不是root权限才能访问。

siegecat
siegecat 找到原因了,其实是我执行git clone命令所在的目录的权限是root的,普通用户没有该目录写的权限。改了就好了。
大约 2 年之前 回复
hijack00
hijack00   Rxr 2016.08.22 19:02

root用户和普通用户的ssh的公钥是不同的,root用户和普通用户的家目录下都有一个.ssh的隐藏目录,里面的id_rsa.pub是ssh的公钥。
你只把root用户的公钥添加到了github的ssh key,而没有将普通用户的公钥添加到github中,所以只有root用户能够git clone。
如果你将普通用户的公钥添加到github,而没有将root用户公钥添加进去,那么就只有普通用户能git clone,root用户也会Permission Denied。

另外,基于https和基于ssh两种方式原理是不同的。基于ssh的方式需要将公钥提供给github才能访问,所以就会出现你现在的问题。而https是通过
https协议,并不需要提供公钥。所以无论root还是普通用户都能访问

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
tdriver git clone的文件
tdriver git clone的文件,具体文件如下: git clone git://gitorious.org/tdriver/driver.git git clone git://gitorious.org/tdriver/sut_qt.git git clone git://gitorious.org/tdriver/agent_qt.git git clone git://gitorious.org/tdriver/visualizer.git git clone git://gitorious.org/tdriver/tests.git
compass git clone
compass git clone compass git clone
git clone后,无法push解决办法
执行  git clone git://github.com/bycuimiao/xinao-demo.git 后,打一个标签,并执行git push origin v2.0报如下错误:fatal: remote error:  You can't push to git://github.com/bycuimiao/xinao-demo.git  Use https://github.com/b...
使用git时遇到可以克隆但不能推送自己的项目 的问题
使用git时遇到的问题:可以克隆(clone)自己的项目,不能推送(push)自己的项目 我是新手,等一次使用CODE ( code.csdn.net ) 。 1,我查看了“帮助”里的技术文章,主要是看了“2. Git基础”。接着创建了一个简单项目,然后顺利地在本地计算机上对 这个项目进行了克隆和推送(clone and push) 。我的项目地址是:git://code.csdn.n
git 常用指令
概述: 克隆Git Project git clone git@192.168.2.5:testprj.git 如果是只读权限,需要:git clone git://192.168.2.5/testprj.git
断点续传式git clone(伪)
clone git的项目的时候,经常都会遇到项目很大,提交历史很长,导致clone的时候花大半天都clone不下来的问题。而且如果直接git clone,必须一次把所有的历史clone下来,否则失败就直接丢弃所有。如果只是需要最新内容,或者网络不好,总是网络中断的情况,非常不友好。git clone 的 depth 参数实际上,如果只需要看最新的提交,使用depth参数,就可以实现只clone最新...
IntelliJ IDEA git clone 没反应
点击Clone没反应原因:Idea需要配置上面截图中需要设置Git的路径,然后点击Test,如果设置正确会提示成功,再到第一个截图界面的时候,就会出现Test按钮(如果未设置或者设置不正确,这个Test按钮不会显示),点击Test按钮会出现提示信息,如果提示连接正常类似信息,点击Clone就会成功。总结Idea使用Git步骤可以分三步:1.本地安装Git;2.配置SSH Key; 3.配置Idea
git clone github项目 https模式
-
eclipse 下使用git clone
方法一:eclipse安装好git插件后,直接import-git-project from git- clone url-输入github的网址等就可以了 方法二:使用git软件,到指定的目录,右击git bash here,git clone 加带有网址的文件.git,如(git clone https://github.com/justinmeister/Mario-Level-1.git
Git:Git克隆(git clone)
一、两个版本库维护项目 1.原因 Git版本库就是躲在工作区根目录下的.git目录中,如果忘了这一点直接删除工作区,就会把版本库也同时删掉; Git的版本库目录和工作区在一起,因此存在一损俱损的问题,如果删除一个项目的工作区,同时也会把这个项目的版本库删除掉; 2.解决办法