(Dies ist ein Problem mit SSH, nicht mit Gitolite)
Ich habe gitolite auf meinem Heimserver konfiguriert (Ubuntu 12.04 Server, Open-SSH). Ich möchte eine spezielle Identitätsdatei, um die Repositorys zu verwalten. Daher muss ich über ssh auf meinen eigenen Host zugreifen und zwei verschiedene Identitätsschlüssel verwenden.
Dies ist der Inhalt meiner .ssh / config-Datei:
Host gitadmin.gammu.com
User git
IdentityFile /home/alvaro/.ssh/id_gitolite_mantra
Host git.gammu.com
User git
IdentityFile /home/alvaro/.ssh/id_alvaro_mantra
Dies ist der Inhalt meiner hosts-Datei:
# Git
127.0.0.1 gitadmin.gammu.com
127.0.0.1 git.gammu.com
Ich sollte also in der Lage sein, mit gitolite auf diese Weise zu kommunizieren, um mit dem "normalen" Konto darauf zuzugreifen:
$ssh git.gammu.com
und so greifen Sie mit dem Administratorkonto zu:
$ssh gitadmin.gammu.com
Wenn ich versuche, mit dem normalen Konto zuzugreifen, ist alles in Ordnung:
alvaro@mantra:~/.ssh$ ssh git.gammu.com
PTY allocation request failed on channel 0
hello alvaro, this is gitolite 2.2-1 (Debian) running on git 1.7.9.5
the gitolite config gives you the following access:
@R_ @W_ testing
Connection to git.gammu.com closed.
Wenn ich dasselbe mit dem Administratorkonto mache:
alvaro@mantra:~$ ssh gitadmin.gammu.com
PTY allocation request failed on channel 0
hello alvaro, this is gitolite 2.2-1 (Debian) running on git 1.7.9.5
the gitolite config gives you the following access:
@R_ @W_ testing
Connection to gitadmin.gammu.com closed.
Es sollte das administrative Repository anzeigen. Wenn ich ssh mit ausführlicher Option starte:
ssh -vvv gitadmin.gammu.com
...
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/alvaro/.ssh/id_alvaro_mantra (0x7f7cb6c0fbc0)
debug2: key: /home/alvaro/.ssh/id_gitolite_mantra (0x7f7cb6c044d0)
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/alvaro/.ssh/id_alvaro_mantra
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
...
Es bietet den Schlüssel id_alvaro_mantra an, und das sollte es nicht !!
Das gleiche passiert, wenn ich den Schlüssel mit der Option -i spezifiziere:
ssh -i /home/alvaro/.ssh/id_gitolite_mantra -vvv gitadmin.gammu.com
...
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/alvaro/.ssh/id_alvaro_mantra (0x7fa365237f90)
debug2: key: /home/alvaro/.ssh/id_gitolite_mantra (0x7fa365230550)
debug2: key: /home/alvaro/.ssh/id_gitolite_mantra (0x7fa365231050)
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/alvaro/.ssh/id_alvaro_mantra
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp 36:b1:43:36:af:4f:00:e5:e1:39:50:7e:07:80:14:26
debug3: sign_and_send_pubkey: RSA 36:b1:43:36:af:4f:00:e5:e1:39:50:7e:07:80:14:26
debug1: Authentication succeeded (publickey).
...
Was ist los? Mir fehlt etwas, aber ich kann nicht finden, was.
Dies sind die Inhalte meines Heimatverzeichnisses:
-rw-rw-r-- 1 alvaro alvaro 395 nov 14 18:00 authorized_keys
-rw-rw-r-- 1 alvaro alvaro 326 nov 21 10:21 config
-rw------- 1 alvaro alvaro 137 nov 20 20:26 environment
-rw------- 1 alvaro alvaro 1766 nov 20 21:41 id_alvaromaceda.es
-rw-r--r-- 1 alvaro alvaro 404 nov 20 21:41 id_alvaromaceda.es.pub
-rw------- 1 alvaro alvaro 1766 nov 14 17:59 id_alvaro_mantra
-rw-r--r-- 1 alvaro alvaro 395 nov 14 17:59 id_alvaro_mantra.pub
-rw------- 1 alvaro alvaro 771 nov 14 18:03 id_developer_mantra
-rw------- 1 alvaro alvaro 1679 nov 20 12:37 id_dos_pruebasgit
-rw-r--r-- 1 alvaro alvaro 395 nov 20 12:37 id_dos_pruebasgit.pub
-rw------- 1 alvaro alvaro 1679 nov 20 12:46 id_gitolite_mantra
-rw-r--r-- 1 alvaro alvaro 397 nov 20 12:46 id_gitolite_mantra.pub
-rw------- 1 alvaro alvaro 1675 nov 20 21:44 id_gitpruebas.es
-rw-r--r-- 1 alvaro alvaro 408 nov 20 21:44 id_gitpruebas.es.pub
-rw------- 1 alvaro alvaro 1679 nov 20 12:34 id_uno_pruebasgit
-rw-r--r-- 1 alvaro alvaro 395 nov 20 12:34 id_uno_pruebasgit.pub
-rw-r--r-- 1 alvaro alvaro 2434 nov 21 10:11 known_hosts
Es gibt eine Reihe anderer Schlüssel, die nicht angeboten werden ... Warum wird id_alvaro_mantra angeboten und nicht die anderen Schlüssel? Ich kann es nicht verstehen.
Ich brauche Hilfe, weiß nicht, wo ich suchen soll ...
quelle
Host git.gammu.com
User git
IdentityFile /home/alvaro/.ssh/id_alvaro_mantra IdentitiesOnly yes`IdentitiesOnly yes
derHost
Einträge gitadmin.gammu.com und git.gammu.com ist ausreichend. Sie müssen keinen Platzhalter eingeben, der sich auf andere Hosts auswirkt.Für mich bestand die Lösung darin, einen Schlüssel mit einem Befehl zu einer Liste von ssh-Schlüsseln hinzuzufügen:
So könnte es angeboten werden, wenn eine Verbindung zum Server hergestellt wird. Nach dem Hinzufügen eines ssh wurde automatisch der richtige erkannt.
Bearbeiten:
Aber in letzter Zeit denke ich, dass die bessere und dauerhaftere Lösung darin besteht, Ihre Konfigurationsdatei folgendermaßen
~/.ssh/config
hinzuzufügenIdentitiesOnly yes
:quelle