Llaves SSH en GitHub y GitLab🔗
Es posible tener distintas llaves SSH asociadas a un solo correo electrónico tanto para GitHub como para GitLab, basta con cambiar la ubicación en donde se guardarán las llaves al momento de generarlas.
Suponiendo que el correo electrónico sea nihilipster@nihilipster.dev
, se generan las llaves SSH de la siguiente
manera:
Para GitHub, mediante el algoritmo RSA:
[nihilipster@localhost:~]$ /usr/bin/ssh-keygen -t rsa -b 4096 \
-C nihilipster@nihilipster.dev \
-f $HOME/.ssh/nihilipster@nihilipster.dev_github.com_id_rsa
Para GitLab, mediante el algoritmo RSA:
[nihilipster@localhost:~]$ /usr/bin/ssh-keygen -t rsa -b 4096 \
-C nihilipster@nihilipster.dev \
-f $HOME/.ssh/nihilipster@nihilipster.dev_gitlab.com_id_rsa
Ubicación de llaves SSH
Mediante el parámetro -f
de ssh-keygen
es posible cambiar la ubicación de las llaves SSH a generar.
Al terminar se obtendrá lo siguiente en $HOME/.ssh
:
[nihilipster@localhost:~]$ tree $HOME/.ssh
/home/nihilipster/.ssh
├── nihilipster@nihilipster.dev_github.com_id_rsa
├── nihilipster@nihilipster.dev_github.com_id_rsa.pub
├── nihilipster@nihilipster.dev_gitlab.com_id_rsa
└── nihilipster@nihilipster.dev_gitlab.com_id_rsa.pub
0 directories, 4 files
Uso del algoritmo ED25519
Mientras que la documentación de GitHub hace mención de RSA, la documentación de GitLab recomienda el uso de ED25519 por sobre RSA.
En caso de querer hacer uso del algoritmo ED25519 se procede de la siguiente manera:
Para GitHub, mediante el algoritmo ED25519:
[nihilipster@localhost:~]$ /usr/bin/ssh-keygen -t ed25519 \
-C nihilipster@nihilipster.dev \
-f $HOME/.ssh/nihilipster@nihilipster.dev_github.com_id_ed25519
Para GitLab, mediante el algoritmo ED25519:
[nihilipster@localhost:~]$ /usr/bin/ssh-keygen -t ed25519 \
-C nihilipster@nihilipster.dev \
-f $HOME/.ssh/nihilipster@nihilipster.dev_gitlab.com_id_ed25519
Al terminar se obtendrá lo siguiente en $HOME/.ssh
:
[nihilipster@localhost:~]$ tree $HOME/.ssh
/home/nihilipster/.ssh
├── nihilipster@nihilipster.dev_github.com_id_ed25519
├── nihilipster@nihilipster.dev_github.com_id_ed25519.pub
├── nihilipster@nihilipster.dev_github.com_id_rsa
├── nihilipster@nihilipster.dev_github.com_id_rsa.pub
├── nihilipster@nihilipster.dev_gitlab.com_id_ed25519
├── nihilipster@nihilipster.dev_gitlab.com_id_ed25519.pub
├── nihilipster@nihilipster.dev_gitlab.com_id_rsa
└── nihilipster@nihilipster.dev_gitlab.com_id_rsa.pub
0 directories, 8 files
Será necesario registrar las llaves públicas ante GitHub y GitLab, respectivamente, para lo cual se puede
copiar su contenido mediante xclip
:
Para GitHub:
[nihilipster@localhost:~]$ xclip -sel clip < $HOME/.ssh/nihilipster@nihilipster.dev_github.com_id_rsa.pub
Para GitLab:
[nihilipster@localhost:~]$ xclip -sel clip < $HOME/.ssh/nihilipster@nihilipster.dev_gitlab.com_id_rsa.pub
En caso de hacer uso ssh-agent
y ssh-add
, se indica la ubicación de las llaves privadas, por ejemplo para RSA:
[nihilipster@localhost:~]$ /usr/bin/ssh-add $HOME/.ssh/nihilipster@nihilipster.dev_github.com_id_rsa
[nihilipster@localhost:~]$ /usr/bin/ssh-add $HOME/.ssh/nihilipster@nihilipster.dev_gitlab.com_id_rsa
En caso de ssh
, se configura el método de autenticación y la llaves privadas a usar:
# GitHub
Host github.com
Preferredauthentications publickey
IdentityFile ~/.ssh/nihilipster@nihilipster.dev_github.com_id_rsa
# GitLab
Host gitlab.company.com
Preferredauthentications publickey
IdentityFile ~/.ssh/nihilipster@nihilipster.dev_gitlab.com_id_rsa
Fuentes🔗
- https://help.github.com/en/github/authenticating-to-github/checking-for-existing-ssh-keys
- https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
- https://help.github.com/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account
- https://help.github.com/en/github/authenticating-to-github/testing-your-ssh-connection
- https://docs.gitlab.com/ee/ssh/