Como generar una key ssh para poner conectar con github desde el ordenador.
A continuación voy a redactar una guia a modo de recordatoria personal, para cuando tenga que hacerlo, pero aqui os dejo la guia completa dodne lo aprendí Setting up git – The Odin Project
instalar git y configurarlo
Instalar git, parece obvio pero muchas veces no esta instalada
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --global color.ui auto
git config --global pull.rebase false
creando ssh key
ssh-keygen -t ed25519 -C "[email protected]"
Saltaran algunos prompts pidiendo el nombre de la llave, donde se guarde, etc. Le podeis a dar a todo aceptar sin poner nada, aunque recomiendo darle un numbre a la llave asi tenerla mas controlada.
Por defecto las llaves se almacenan en ‘~/.ssh/’
En este punto hay que copiar la llave publica, para darsela a Github.
cat ~/.ssh/id_ed25519.pub
# en caso de haberle puesto un nombre
cat ~/.ssh/<nombre_key>.pub
# podeis revisar todas las claves.
ls $/.ssh/
Si le habeis dado a todo que si, aqui teneis la llave para copiar y pegar. En mi caso la he llamado ‘github_key’.
Copiamos toda la llave, algo com esto:
ssh-ed25519 AAAAC3NzaC1lZDIchurromuygrandeZHAEx6spnBoO7zeuCF+NWb0BI [email protected]
configurando la clave en github
En github.com, vais a vuestro perfil os vais a ajustes/settings y en la barra lateral izquierda os vais a SSH and GPG keys.
Creais un nueva clave SSH:
- Titulo, el nombre identificado de la clave, yo uso un nombre que me ayude a saber el ordenador o maquina virtual que es.
- Key type, no lo tocamos, por defecto «Authentication key»
- Key, le pegamos el contenido anterior.
comprobando que funcione
Podeis seguir esta guia de Github para testear la conexion SSH o podeis seguir los comando resumidos que os muestro.
ssh -T [email protected]
Typeamos ‘yes’ para confirmar la conexion. y si todo va bien deberiamos de ver algo como esto:
> The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
> Are you sure you want to continue connecting (yes/no)?
breve explicación sobre las claves
Basicamente cuando generas una clave estas generando dos archivos, o dos contraseñas, una publica y una privada. A github le estas dando la publica para que el compruebe contigo y tu puedas resolver con tu clave privada. Si esto sucede, tienes acceso.
En caso de que existan errores o puedes revisar las guias que enlace en el articulo o escribir en los comentarios.
errores comunes
ssh -T [email protected]
#respuesta
[email protected]: Permission denied (publickey).
Si le habeis puesto un nombre espefico a vuestra key, es normal que tengais este fallo, y podeis debugear de esta forma:
ssh -vT [email protected]
En mi caso, en las últimas lineas me daba este error:
debug1: Trying private key: /home/jade/.ssh/id_rsa
debug1: Trying private key: /home/jade/.ssh/id_ecdsa
debug1: Trying private key: /home/jade/.ssh/id_ecdsa_sk
debug1: Trying private key: /home/jade/.ssh/id_ed25519
debug1: Trying private key: /home/jade/.ssh/id_ed25519_sk
debug1: Trying private key: /home/jade/.ssh/id_xmss
debug1: Trying private key: /home/jade/.ssh/id_dsa
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey).
Conclusion, github intenta acceder a unas claves por nombre genericos y tengo que indicarle que las mias estan en otro lado.
Os dejo esta guia donde viene explicado al detalle:
Tenemos que crear un nuevo archivo conf en ~/.ssh de esta forma
«`bash
nano ~/.ssh/config
#
En el archivo podeis algo tal que así
Host gh_personal
HostName github.com
IdentityFile ~/.ssh/
Para conectar:
ssh -T git@gh_personal
Para simplicar en mi configuración y como no tengo necesidad de usar varias clave, voy a rehacerlo para que los nombres sean los genericos.