¿Cómo tener 2 accesos Github SSH?

Tengo una cuenta personal ericpersonal y una cuenta de empresa ericcompanyabc (me obligaron a hacerlo aunque podrían haber agregado mi cuenta personal de GitHub a sus repositorios) en github.com.
Estoy usando una computadora que me da la compañía y dedico más tiempo a los proyectos de trabajo, así que estoy conectado principalmente como ericcompanyabc

Luego generé 2 claves privadas y públicas como resultado:

ls -lrt ~/.ssh
total 72
-rw-------  1 eric.nguyen  eric.nguyen   110 Aug 31 11:03 authorized_keys.jcorig
-rw-r--r--  1 eric.nguyen  eric.nguyen  2004 Sep 13 14:16 known_hosts
lrwxr-xr-x  1 eric.nguyen  eric.nguyen    76 Sep 25 21:53 ssh_auth_sock -> /var/folders/c3/q4dw0_q90lj6_nysk_hjt8p00000gn/T//ssh-31QAwZUf1Pmz/agent.501
-rw-------  1 eric.nguyen  eric.nguyen   743 Oct 26 16:02 id_rsa2.pub
-rw-------  1 eric.nguyen  eric.nguyen  3243 Oct 26 16:02 id_rsa2
-rw-r--r--  1 eric.nguyen  eric.nguyen   746 Oct 27 16:29 id_rsa1.pub
-rw-------  1 eric.nguyen  eric.nguyen  3243 Oct 27 16:29 id_rsa1
-rw-r--r--  1 eric.nguyen  eric.nguyen   279 Oct 27 16:29 config
-rw-------  1 eric.nguyen  eric.nguyen   225 Nov  3 17:57 authorized_keys

Tengo que cambiar entre las 2 cuentas usando los siguientes comandos pero es muy tedioso:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa1

También he intentado usar .ssh/configel archivo pero sin éxito

cat ~/.ssh/config 
Host githubcompany
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa1
    UseKeychain yes

Host githuberic
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa2
    AddKeysToAgent yes
    UseKeychain yes

¿Qué puedo hacer para que el cambio entre cuentas de Github sea sencillo?

Estoy usando macOS Sierra 10.12.6

Es casi como si necesitara dos cuentas de usuario y suentre ellas con indicaciones y entornos distintos. Me pregunto si las funciones de shell podrían intercambiar las variables necesarias, foo workyfoo home
buena idea, alias gitpersonal=eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa2bastaria

Respuestas (1)

La solución simple para mí es evitar cambiar mi identidad, por lo que no tengo que automatizar el cambio de las variables de entorno y los archivos que proporcionan la identidad al shell:

  1. Configure GitHub SSH para su cuenta de trabajo de GitHub, por ejemplo, ericcompanyabc .
  2. Luego, en mis repositorios personales de GitHub, simplemente agrego ericcompanyabc como colaborador . Listo, ahora puedo impulsar mis proyectos personales (como ericcompanyabc en la computadora de la empresa) sin tener que cambiar de cuenta de GitHub de un lado a otro.

(Otorgar acceso a ericpersonal a repositorios de trabajo es imposible aquí, por supuesto)