
Así que tengogitolitaconfiguración. Simple. Pero hay un problema que tengo. Las URL SSH siguen el formato git@host:repo
. estoy acostumbrado aBitbucket/GitHubdonde las URL siguen el formato de git@host:user/repo
. ¿Hay alguna manera de obtener el último formato usandogitolita?
Otra pregunta. Tengo mi ~/.ssh/config
archivo configurado con la siguiente entrada:
Host <host>
User <user>
IdentityFile <path/to/public/key>
No tengo ninguna configuración que especifique git
como usuario y aún así puedo clonar git@host:repo
sin problemas. Obviamente, mi cliente ssh está usando mi clave pública para acceder al servidor, por esogitolitame permite clonar el repositorio, pero ¿cómo sabe mi cliente ssh que debe usar mi clave pública que solo está configurada para el <user>
usuario y no para el git
usuario?
Respuesta1
Restringir a los usuarios a comandos específicos es muy importante para gitolite.
Si tu leesman sshd
y busque el formato de archivo autorizado_keys, verá muchas opciones que puede agregar a la línea de clave pública, que restringen al usuario entrante de varias maneras. En particular, tenga en cuenta lacommand=
opción, que significa "independientemente de lo que el usuario entrante solicite hacer, ejecute este comando a la fuerza".También tenga en cuenta que cuando hay muchas claves públicas (es decir, líneas) en el archivo de claves_autorizadas, cada línea puede tener un conjunto diferente de opciones y
command=
valores.Sin esta
command=
opción, el demonio ssh simplemente le dará un shell, que no es lo que queremos para nuestras claves gitolite (aunque es posible que tengamos otras claves que usemos para obtener un shell).Ésta es la columna vertebral de lo que hace que la gitolita funcione; por favor asegúrese de entender esto.
Estos command=
utilizan el nombre de su clave pública como nombre de usuario.
Entonces todas tus consultas ssh se realizan con:
- el usuario git
- una clave pública cuyo nombre está registrado en los parámetros de la directiva comando= en el archivo
~git/.ssh/authorized_keys
.
En cuanto a user/repos
, lo más cercano que tendrías con Gitolite es enrepositorios salvajes y patrón de repositorio.
repo CREATOR/a[0-9][0-9]