使用 sudo 进行 git 克隆

2024-11-11 08:27:00
admin
原创
166
摘要:问题描述:当我从用户提示符下使用 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/
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1124  
  IPD(Integrated Product Development,集成产品开发)流程是一种广泛应用于高科技和制造业的产品开发方法论。它通过跨职能团队的紧密协作,将产品开发周期缩短,同时提高产品质量和市场成功率。在IPD流程中,CDCP(Concept Decision Checkpoint,概念决策检查点)是一个关...
IPD培训课程   79  
  研发IPD(集成产品开发)流程作为一种系统化的产品开发方法,已经在许多行业中得到广泛应用。它不仅能够提升产品开发的效率和质量,还能够通过优化流程和资源分配,显著提高客户满意度。客户满意度是企业长期成功的关键因素之一,而IPD流程通过其独特的结构和机制,能够确保产品从概念到市场交付的每个环节都围绕客户需求展开。本文将深入...
IPD流程   70  
  IPD(Integrated Product Development,集成产品开发)流程是一种以跨职能团队协作为核心的产品开发方法,旨在通过优化资源分配、提高沟通效率以及减少返工,从而缩短项目周期并提升产品质量。随着企业对产品上市速度的要求越来越高,IPD流程的应用价值愈发凸显。通过整合产品开发过程中的各个环节,IPD...
IPD项目管理咨询   82  
  跨部门沟通是企业运营中不可或缺的一环,尤其在复杂的产品开发过程中,不同部门之间的协作效率直接影响项目的成败。集成产品开发(IPD)作为一种系统化的项目管理方法,旨在通过优化流程和增强团队协作来提升产品开发的效率和质量。然而,跨部门沟通的复杂性往往成为IPD实施中的一大挑战。部门之间的目标差异、信息不对称以及沟通渠道不畅...
IPD是什么意思   74  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用