Hay un detalle que todavía no hemos comentado. ¿Cómo realiza git la autenticación de usuarios? Veámoslo.
El acceso local es trivial y sin autenticación.
$ git clone /opt/git/project.git
Puerto 9418, por red y sin ningún tipo de autenticación.
$ git clone git://git.kernel.org/pub/scm/git/git.git
El más sencillo y compatible para acceso en modo lectura.
$ git clone http://example.com/gitproject.git
Es un acceso por red y autenticado.
$ git clone user@server:project.git
Se consigue el acceso conjunto de usuarios emparejando un usuario del sistema con una gestión de claves públicas/privadas SSH. Existe software que ya implementa este funcionamiento, como por ejemplo gitosis o gitolite.
El protocolo más utilizado cuando necesitamos autenticación es SSH. La autenticación se realiza mediante clave pública/privada. Veamos un ejemplo de generación de llaves SSH.
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/schacon/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/schacon/.ssh/id_rsa. Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub. The key fingerprint is: 43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a schacon@agadorlaptop.local $ ls ~/.ssh id_rsa known_hosts config id_rsa.pub
La clave pública id_rsa.pub es la que utilizaremos para conseguir acceso a los repositorios.
$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNTQzEK7jgNb5erGMKOOI9bP ELlY0ut6ZuqXmVrzwlJ9pTLS2tpox7gFSUGVwqXRusgpbEpcoBcOKqdXKuVCZb p8YX56+OP07lsE5CCMJmTuO9Dcg2z+Pq4iW8/hBD3+N+891UPRbXWtggrKdTPM s5bnlpxa7kFdbCEG7z3ShZIyaRJW2oj3+aSxc33I+pHiQZ5yjYh5AspJLroaX/ 7MKHrFRq2NeP1FCU0jz1wkO8ZPDYadKn03dtkVY7/wfR//3pq27ckZiKFLref2 gwTBCVCe7ZAqWQHYekNjq+QBstULMmDM0VgmBueQGLEjApDJhXDQgYPu5A2zUK 0uR8vLNJ dave@inuik
Entornos de hosting como github, gitorious o bitbucket solicitan una clave como ésta para hacer push al repositorio.
Es la plataforma de hosting de proyectos Git más utilizada hoy en día.
Cambia de foto con las teclas: ↑ y ↓
Podemos conseguir algo similar a github en nuestro servidor propio con las ventajas e inconvenientes que eso supone. Simplemente comentaros que necesitáis 2 proyectos de software libre:
Cambia de foto con las teclas: ↑ y ↓