Al hilo del último post sobre cómo «tunear» un poco nuestro ssh, podemos usarlo por ejemplo si tenemos varias cuentas en github.com. Cuando ocurre esto, por cada cuenta que tienes en github, tienes que añadir una clave pública; esto no es ningún problema ya que podemos crear tantas claves como queramos, pero lo que no es tan fácil es cambiar la cuenta ssh con la que debe conectarse el cliente de git a github. No es muy común, pero te puede ocurrir como a mi, que tienes tu cuenta personal y la del trabajo.
Para poder conseguir esto, supongamos que tienes estos datos:
- Cuenta personal
- Usuario: usuario_casa
- Fichero de clave: ~/.ssh/casa
- Cuenta trabajo
- Usuario: usuario_trabajo
- Fichero de clave: ~/.ssh/trabajo
Lo que habría que hacer es tener un fichero de configuración ssh (recordemos que está en ~/.ssh/config) de la siguiente forma:
Host github
HostName github.com
User usuario_casa
IdentityFile ~/.ssh/casa
Host github-trabajo
HostName github.com
User usuario_trabajo
IdentityFile ~/.ssh/trabajo
La diferencia es sutil: cambia el valor que ponemos en Host (los espacios o tabulaciones son opcionales, yo los uso para dar un poco más de orden).
Con esto, tenemos que cambiar la dirección con la que nos conectaremos con la cuenta de trabajo. Si por ejemplo, para añadir el repositorio remoto usamos:
git remote add origin git@github.com:usuario_trabajo/proyecto.git
Ahora deberemos poner:
git remote add origin git@github-trabajo:usuario_trabajo/proyecto.git
Es decir, ssh se encargará automáticamente de hacer el cambio por nosotros y, de esta forma, no tendremos problemas decidiendo con qué usuario debe conectar o no, está todo en el fichero de configuración 😉