Quantcast
Channel: VCS – El Blog de rubensa
Viewing all articles
Browse latest Browse all 13

Elección de credenciales con ssh agent forwarding

$
0
0

Supongamos que tenemos dos usuarios diferentes, uno empresarial y otro personal, que utilizamos en, por ejemplo GitHub.

Para poder hacer uso de las credenciales de ambos usuarios dependiendo del repositorio al que nos conectemos haremos algo similar a lo contado en Configurando múltiples claves SSH para diferentes cuentas github.

Ahora bien, ¿qué ocurre si queremos utilizar estas mismas credenciales desde otro equipo haciendo uso de ssh agent forwarding?

El problema principal es que si en el equipo donde está el ssh-agent tenemos algo como

  • ~/.ssh/config
#user1 account
Host github.com-user1
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_user1

#user2 account
Host github.com-user2
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_user2

con sus correspondientes

  • ~/.ssh/id_rsa_user1
  • ~/.ssh/id_rsa_user1.pub
  • ~/.ssh/id_rsa_user2
  • ~/.ssh/id_rsa_user2.pub

y nos queremos conectar a un repositorio de github desde otro equipo intermedio, haciendo uso del ssh agent forwarding, el ssh-agent intentará realizar la identificación con todas las keys disponibles, en el orden en el que fueron añadidas al agent.

Si ambas credenciales son válidas para github, aunque te quieras conectar a un repositorio en el que el user2 tiene permiso de escritura, lo estarás haciendo con el user1 (si las credenciales de éste fueron las primeras añadidas), que solamente tiene permiso de lectura.

Para solucionar esto, lo que podemos es crear una copia del fichero

  • ~/.ssh/config
#user1 account
Host github.com-user1
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_user1

#user2 account
Host github.com-user2
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_user2

y de las correspondientes partes públicas de las keys

  • ~/.ssh/id_rsa_user1.pub
  • ~/.ssh/id_rsa_user2.pub

en el equipo intermedio.

De este modo, en función del Host (github.com-user1 o github.com-user2) al que realizamos la conexión el ssh-agent seleccionará la parte privada de la key que se corresponde con la parte pública utilizada (sin necesidad de que esta parte privada esté disponible en el equipo intermedio).

NOTA: Si desde el equipo intermedio siempre quieres realizar la conexión usando las mismas credenciales (independientemente del host), no es necesario que crees el fichero ~/.ssh/config. Basta con copiar la parte púbica de la key que quieres utilizar y guardarla como ~/.ssh/id_rsa.pub

Algunos enlaces de interés


Viewing all articles
Browse latest Browse all 13

Latest Images

Vimeo 10.7.0 by Vimeo.com, Inc.

Vimeo 10.7.0 by Vimeo.com, Inc.

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.





Latest Images

HANGAD

HANGAD

MAKAKAALAM

MAKAKAALAM

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.