程序引力 2016-04-22 14:45 采纳率: 0%
浏览 7597

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条回答 默认 最新

  • hijack00 2016-08-22 11: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还是普通用户都能访问

    评论

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)