我们在公共资源旁边的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.
答案 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
应该正常工作。