2016-08-30 4 views
-1

Ich bin unter Ubuntu 16.04. Ich kann kein Repository (d. H. Git: //yoctoproject.org/poky; git: //git.gnome.org/jhbuild; git: //git.gnome.org/rhythmbox usw.) unter dem git-Protokoll klonen.Klonen kein Repository unter Git-Protokoll (mit Git Klon Git: //)

Ich generierte öffentliche und private SSH-Schlüssel mit ssh-keygen und legte sie auf den Ordner ~/.ssh /.

Es funktioniert mit dem Herunterladen von Git-Repositories unter https-Protokoll (wie https://github.com/mozilla/gecko-dev). Ich habe die Option "https: // statt git: //" zum Klonen der obigen Git-Repos ausprobiert, aber es hat nicht funktioniert. Ich habe mit verschiedenen Internetverbindungen (Heim und Arbeit) überprüft, den Proxy entfernt, aber es hat nicht funktioniert.

Die Fehler, die ich bekomme, wenn ich versuche zu klonen sind: - fatal: Verbindung zu "hostname" nicht möglich; errno = Verbindungs-Timeout/kein Fehler. - ssh: Verbindung mit Host "Hostname" Port 22: Verbindung mit Zeitüberschreitung Bitte stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben und das Repository existiert.

Meine Idee ist, dass in irgendeiner Weise für jedes git: // Repository ich meinen öffentlichen Schlüssel zum Host authorized_keys-Ordner hinzufügen muss, aber ich weiß nicht, wie es geht (und ob es die Lösung für mein Problem ist). Kann mir bitte jemand ein funktionierendes Beispiel geben, wie man ein Repo mit dem git: // Protokoll klont?

+0

Sind Sie sicher, dass Sie verwenden (oder sollte verwenden), um das git: // Protokoll? Laut der [Dokumentation] (https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols) hat das Git-Protokoll eine * no * -Authentifizierung und wird sehr selten verwendet. Höchstwahrscheinlich sollten Sie das SSH-Protokoll verwenden. In diesem Fall kann einige serverseitige Software auch Beschränkungen auferlegen (z. B. gitlab oder github, bei denen immer der git-Benutzername verwendet werden muss). –

+0

Wenn Sie das SSH-Protokoll verwenden, müssen Sie wahrscheinlich auch angeben, welcher private Schlüssel in der Datei "~/.ssh/config" verwendet werden soll. (Hinweis: 'HostName xyz' -' IdentityFile abc_rsa') –

Antwort

0

Meine Idee ist, dass für jeden git in irgendeiner Weise: // Repository Ich brauche meinen öffentlichen Schlüssel an den Host authorized_keys Ordner hinzufügen, aber ich weiß nicht, wie es zu tun (und wenn es die Lösung zu meinem Problem).

Haben Sie Zugriff auf die Maschine, auf der das Repository ausgeführt wird? Wenn ja, können Sie den folgenden Befehl verwenden, Ihren öffentlichen Schlüssel an den Server zu kopieren:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 

Wenn Sie keinen Zugriff auf die Maschine haben, können Sie (E-Mail) Ihren öffentlichen Schlüssel an den Administrator senden.

Kann mir bitte jemand ein funktionierendes Beispiel geben, wie man ein Repo mit git: // Protokoll klont?

Wenn Sie Zugriff auf das Repository haben, verwenden Sie diese:

git clone [email protected]:/opt/git/repository.git 
+0

Der Fehler sieht so aus, als hätte der Benutzer keinen Zugriff auf den Repo. @ Philj0 hat Recht. –