2016-08-03 22 views
0

Wir verwenden für unser symfony Projekt neben den öffentlichen Quellen auch ein privates Repository auf unserem eigenen gitlab Server, der über ssh erreichbar ist.ubuntu: Wie installiere ich ein privates Repository mit Composer mit sudo

Wenn ich nur dieses private Repository auf meine lokale Ubuntu-Maschine klonen, ist alles in Ordnung. Wenn ich

$ sudo composer install 

in dem Projekt, das dieses Repository umfasst ich folgende Fehlermeldung:

[RuntimeException] 
Failed to execute git clone --mirror '[email protected]: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. 

Ich nehme an, dies liegt daran, dass mein SSH-Schlüssel in meinem Privathaus befindet und wenn ich diese laufe Als Sudo werden sie nicht genannt. Da Sie "su" nicht einfach wie auf anderen Linux-Systemen verwenden können, weiß ich nicht, wie ich das beheben kann.

Let Composer laufen ohne Sudo funktioniert aber nicht.

Als nächstes kopierte ich all meinen SSH-Schlüssel /root/.ssh, aber da sie einem Passwort geschützt sind, laufe ich zum nächsten Problem in:

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

Ich habe die ganze Sache jetzt läuft als myuser ohne root. Das löst mein Problem, aber nicht die Frage. –

Antwort

0

Einen SSH-Schlüssel für root und für sie den Zugang zu genehmigen .

Sie brauchen nicht wirklich su, dies zu tun. Aber wenn Sie wirklich wirklich wollen, können Sie root werden mit:

sudo su - 

aktualisieren

So sehe ich Sie Ihre Benutzer-Schlüssel zu root kopiert. So weit, ist es gut.

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

Es scheint, es läuft kein Authentifizierungsagent für root ist. Sie müssen zuerst eine starten. Hier ist eine Möglichkeit, es zu tun:

# 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 

Danach, Sie composer install mit root tun können.

+0

Haben Sie einen Authentifizierungsagent für 'root' gestartet? Hast du Schlüssel für 'root' erstellt? Es scheint nicht. Es ist wahrscheinlich am besten, wenn Sie "root" mit "sudo su-" werden und dann die übliche Prozedur zum Erstellen und Autorisieren von Schlüsseln befolgen. – janos

+0

Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackoverflow.com/rooms/120082/discussion-between-janos-and-calamity-jane). – janos

+0

Ich habe meine Antwort angesichts der neuen Informationen in Ihren Kommentaren geändert und in Ihrer Frage aktualisiert. Wenn Sie weitere Fragen haben, ist es einfacher, den Rest im Chat zu sortieren, klicken Sie auf den Link in meinem vorherigen Kommentar. – janos

0

können Sie auch

Defaults  env_keep+=SSH_AUTH_SOCK 

auf die sudoers-Datei auf dem Server hinzufügen und -A zu Ihrer ssh Befehlszeile hinzuzufügen, wenn die Verbindung zum Server. Vorausgesetzt, dass Sie den richtigen Schlüssel in Ihrem ssh-Agenten von Ihrem lokalen Rechner mit dem Repository verknüpft haben,

sudo composer install 

sollte einfach funktionieren.