ubuntu:如何使用sudo使用composer安装私有存储库

时间:2016-08-03 13:26:58

标签: git ubuntu ssh composer-php

我们在公共资源旁边的symfony项目也使用我们自己的gitlab服务器上的私有存储库,可以通过ssh访问。

如果我只将这个私有存储库克隆到我的本地ubuntu机器,一切都很好。 如果我使用

details6

在包含此存储库的项目中,我收到以下错误消息:

$ sudo composer install

我认为这是因为我的ssh密钥位于我的私人住宅中,如果我将其作为sudo运行,则不会调用它们。 既然你不能像其他Linux系统那样简单地使用“su”,我就不知道如何解决这个问题。

让没有sudo的composer运行虽然不起作用。

接下来,我将所有ssh密钥复制到/root/.ssh,但由于它们受密码保护,我会遇到下一个问题:

[RuntimeException]
Failed to execute git clone --mirror 'git@gitlab.con.example.com:myprivaterepo.git' '/home/aliebermann/.composer/cache/vcs/git-gitlab.con.example.com-myprivaterepo.git/'
Cloning into bare repository '/home/myuser/.composer/cache/vcs/git-gitlab.con.example.com-myprivaterepo.git'...
    __________________________________________________________________
    |                                                                  |
    |  This system is for the use of authorized users only.  Usage of  |
    |  this system may be monitored and recorded by system personnel.  |
    |                                                                  |
    |  Anyone using this system expressly consents to such monitoring  |
    |  and is advised that if such monitoring reveals possible         |
    |  evidence of criminal activity, system personnel may provide the |
    |  evidence from such monitoring to law enforcement officials.     |
    |__________________________________________________________________|
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

2 个答案:

答案 0 :(得分:0)

root创建一个ssh密钥并授权其访问。

你真的不需要su来做这件事。但如果你真的想要,你可以成为root

sudo su -

<强>更新

因此,我发现您已将用户的密钥复制到root。到目前为止一切都很好。

$ sudo ssh-add -k
[sudo] Password for myuser: 
Could not open a connection to your authentication agent.

似乎没有为root运行身份验证代理。 你需要先开始一个。 这是一种方法:

# become root; will ask for user's password
sudo su -

# start ssh-agent
eval $(ssh-agent)

# add private key to agent; will ask for passphrase
ssh-add

在此之后,您可以使用composer install执行root

答案 1 :(得分:0)

您也可以添加

Defaults        env_keep+=SSH_AUTH_SOCK

到服务器的sudoers文件,并在连接到服务器时将-A添加到ssh命令行。假设您的ssh代理中有与存储库关联的本地计算机中的正确密钥,

sudo composer install 

应该正常工作。