Git-Authentifizierung - ziehen, wie Sie einen neuen Benutzer
Frage
Die folgenden Befehle korrekt funktionierte
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin gitosis@myserver.net:repositories/carboncake.git
$ git pull
Aber als ich versuchte, ziehen Sie als ein anderer Benutzer,
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin mithun@myserver.net:repositories/carboncake.git
$ git pull
Ich bekam den folgenden Fehler
fatal: 'repositories/carboncake.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
meine gitosis.conf
enthält
[gitosis]
[group team]
writable = sweepshots
members = git_id_rsa
[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa
[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P
[group carboncake]
writable = carboncake
members = mithun @core
und die keydir
enthält
git_id_rsa.pub KEY-----.pub mithun.pub mithun-rsa-key-20110427.pub
und des Benutzers .ssh
dir enthält
mithun@testserver:~$ ls .ssh/
id_rsa id_rsa.pub mithun_rsa mithun_rsa.pub
-- UPDATE
Ich habe versucht $ git remote add origin mithun@myserver.net:carboncake.git
auch, aber den gleichen Fehler.
Eigentlich carboncake.git liegt bei /srv/gitosis/repositories/carboncake.git
Lösung
mithun@myserver.net
?
Durch die Nutzung mithun@myserver.net
, Sie umgehen die Gitose vollständig, da die richtige URL das 'die' beinhalten würde 'git
'Benutzer, unter dem Gitolith installiert wurde.
Jede Gitosis -Befehle würde den gleichen "Git" -Nutzer betreffen: gitosis@myserver.net
(Annahme eines "Gitosis" -Konto hier).
Außerdem sollten Sie nicht den vollständigen Pfad des Repo angeben:
git remote add origin gitosis@myserver.net:carboncake.git
Andere Tipps
To add a little plain-english Klarheit @VonC ist (völlig richtige) Antwort...
gitosis (die nicht mehr in der aktiven Entwicklung, und Sie sollte mit gitolite, aber diese Antwort gilt für beide) speichert für jeden Benutzer den öffentlichen Schlüssel in (in deinem Fall) ~gitosis/.ssh/authorized_keys
.Wenn ein Benutzer ssh ' es auf das Konto gitosis
, ssh stellt einen kryptografischen handshake, eine Zeile findet, die in der authorized_keys-Datei, die eine übereinstimmung mit dem angegebenen Schlüssel, und tut, was auch immer, die Linie zu tun, sagt.Wenn Sie betrachten, dass der authorized_keys-Datei, jede Zeile stellt einen Befehl aufrufen, wenn sich der Benutzer anmeldet, das ist ein Aufruf an die gitosis Prozess, tragen den Namen des jeweiligen Benutzers.
So dass jeder Benutzer ist WIRKLICH ssh ' Ing in der GLEICHEN gitosis
"Maschine" - Konto, aber die SSH-Schlüssel, den Sie dort mit Feuer bis gitosis WIE der Benutzer Sie sind.Das ist, wie gitosis weiß, welcher Benutzer es zu reden, obwohl Sie schon angemeldet sind, in der gleichen "Maschine" - Konto unter dem Namen gitosis
.
So kann jedes lokale repo, die Sie verfolgen möchten, um gitosis zu einem remote-format gitosis@your.server:<reponame>.git
.