使用 sudo 进行 git 克隆

2024-11-11 08:27:00
admin
原创
191
摘要:问题描述:当我从用户提示符下使用 ssh 进行 git clone 时,它​​可以正常工作。git clone ssh://URL.com/soft.git soft_git ssh密钥 id_rsa位于id_rsa.pub`/home/user/.ssh`我的目的是执行 git,sudo但是出现了以下错误C...

问题描述:

当我从用户提示符下使用 ssh 进行 git clone 时,它​​可以正常工作。

git clone ssh://URL.com/soft.git soft_git

ssh密钥 id_rsa位于id_rsa.pub`/home/user/.ssh`

我的目的是执行 git,sudo但是出现了以下错误

Cloning into '/home/user/git/soft'...
Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

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

我创建了一个文件夹/root/.ssh并将 ssh 密钥复制到其中,但出现了同样的错误

如何正确使用 sudo 执行 git。


解决方案 1:

当您使用 sudo 运行 git 时,git 将以 root 身份运行。由于 git 以 root 身份运行,因此 ssh 也以 root 身份运行。由于 ssh 以 root 身份运行,因此它尝试以 root 身份登录远程服务器。远程服务器对此不满意(应该如此!)

你需要做两件事:

  • 将用户名放在您的 URL 中:ssh:// myusername@URL.com /soft.git。

  • 将您的 SSH 密钥提供给 root 用户,因为它将在下面/root/.ssh而不是进行查找/home/user/.ssh。(您也可以将 SSH 指向正​​确的密钥,但我不知道如何执行此操作,并且 SSH 对权限很挑剔。)

解决方案 2:

在我的计算机(Ubunutu 18.04)上,添加SSH_AUTH_SOCK=$SSH_AUTH_SOCKaftersudo和 beforegit解决了问题:

sudo SSH_AUTH_SOCK=$SSH_AUTH_SOCK git clone git@github.com:my-github-account/my-repo.git 

通常情况下,sudo 的SSH_AUTH_SOCK环境变量不会正确设置。执行 git clone 会将SSH_AUTH_SOCK=$SSH_AUTH_SOCKsudo 的SSH_AUTH_SOCK环境变量设置为您想要的任何值。

这样,您就不需要.ssh为 sudo 添加包含密钥副本的额外目录,我认为这也是其他答案所建议的。

这个相当旧的 github gist 中更详细地解释了该解决方案:
https://gist.github.com/scottjacobsen/4281310

PS:几年后我添加了一个新答案;我在 Google 上搜索了该问题的解决方案,这个 SO Q/A 是首先出现的内容之一。

解决方案 3:

通常,默认的远程 ssh 用户与您的用户名相同。如果您使用sudo这个,则root可能不起作用。您需要提供远程用户名。

sudo git clone ssh://username@URL.com/soft.git soft_git

通常,您可以尝试使用普通 ssh 登录远程,这样可以更轻松地解决 git ssh 问题。您将获得更好的诊断,并可以查看问题所在。

sudo ssh ssh://URL.com/
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1247  
  IPD(Integrated Product Development)研发管理体系作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用,助力企业提升产品开发效率、降低成本、增强市场竞争力。深入理解其核心要素,对于企业成功实施 IPD 研发管理体系至关重要。以下将对 IPD 研发管理体系的四大核心要素进行详细解析。...
IPD流程中的charter   19  
  IPD(Integrated Product Development)研发管理体系强调将产品开发视为一个完整的流程,从市场需求出发,整合企业的各种资源,实现产品的快速、高质量交付。在这个过程中,成本控制是至关重要的一环,它直接关系到产品的竞争力和企业的盈利能力。有效的成本控制能够确保在不牺牲产品质量和性能的前提下,降低...
IPD开发流程管理   22  
  IPD(Integrated Product Development)项目管理作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它通过整合跨部门团队,实现从概念到产品上市的全流程高效管理,提升产品竞争力。深入探讨IPD项目管理的六个关键阶段,对于企业理解和运用这一模式,优化产品开发流程具有重要意义。概念阶段概...
IPD概念阶段   29  
  IPD(Integrated Product Development)流程管理作为一种先进的产品开发管理模式,旨在通过整合各种资源,实现产品开发的高效、协同与创新。在这一流程管理体系下,产品质量保障成为企业关注的核心要点之一。有效的产品质量保障策略不仅能够提升产品的市场竞争力,还能为企业赢得良好的声誉和客户忠诚度。接下...
华为IPD   24  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用