使用sudo制作git clone

Ani*_*ack 3 linux git ssh sudo

当我从用户提示符使用ssh制作git clone时,它可以正常工作.

git clone ssh://URL.com/soft.git soft_git
Run Code Online (Sandbox Code Playgroud)

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.
Run Code Online (Sandbox Code Playgroud)

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

如何正确执行git与sudo.

Die*_*Epp 7

当你使用sudo运行git时,git将以root身份运行.因为git以root身份运行,所以ssh以root身份运行.因为ssh以root身份运行,所以它尝试以root用户身份登录到远程服务器.远程服务器不适合(因为它应该!)

你需要做两件事:

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

  • 使root用户可以使用SSH密钥,因为它会查看/root/.ssh而不是/home/user/.ssh.(您也可以将SSH指向正确的密钥,但我不知道如何执行此操作,并且SSH对权限很挑剔.)


Sch*_*ern 2

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

sudo git clone ssh://username@URL.com/soft.git soft_git
Run Code Online (Sandbox Code Playgroud)

通常,您可以通过尝试使用普通 ssh 登录远程来更轻松地解决 git ssh 问题。您将获得更好的诊断并可以看到出了什么问题。

sudo ssh ssh://URL.com/
Run Code Online (Sandbox Code Playgroud)