Creación de llaves SSH

Cómo generar un par de claves pública y privada para usar con GitHub o conectarte por SSH a otros equipos.

Ubicación de las llaves

Lista todas las llaves almacenadas en ~/.ssh. Si ya existen, verás un resultado similar.

ls -l ~/.ssh
total 12
-rw------- 1 user user 3243 jun  1 15:05 id_rsa
-rw------- 1 user user  742 jun  1 15:05 id_rsa.pub
-rw-r--r-- 1 user user 1326 Jun  1 15:05 known_hosts

Creación de una nueva llave

En este ejemplo generaremos la llave id_rsa.

  1. Crea una nueva llave SSH.

    ssh-keygen -t rsa -b 4096 -C "user@example.com"
    
    Enter file in which to save the key (/home/user/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/user/.ssh/id_rsa.
    Your public key has been saved in /home/user/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:xCYt9XPANH0jk76Td96cU1m1D2htEPamHfu8lWce5Kk user@example.com
    The key's randomart image is:
    +---[RSA 4096]----+
    |        .o+.oo   |
    |       + ..+*.o .|
    |      o = o..B+.o|
    |       =   o++++.|
    |        S  ..+oo+|
    |            + ++*|
    |             o OX|
    |              .=O|
    |             E .o|
    +----[SHA256]-----+
    
  2. Inicia el agente SSH.

    eval "$(ssh-agent -s)"
    
    Agent pid 19690
    
  3. Añade la clave privada al agente SSH.

    ssh-add ~/.ssh/id_rsa
    
    Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
    

Modo de uso

Copia la clave pública id_rsa.pub.

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAAF...MLZ94Nq2F4ToHR3U6Q== user@example.com

Pega la clave pública donde te la soliciten.

  • Para GitHub, ve a Settings > SSH and GPG keys.

  • Para habilitar el acceso remoto en otro servidor, añade la clave al archivo authorized_keys dentro de ~/.ssh.

    cd /home/server/.ssh
    
    nano authorized_keys
    

Permisos para la carpeta que contiene las llaves

Asegura los permisos de la carpeta y sus archivos.

sudo chmod 600 -R ~/.ssh/*
sudo chmod 644 ~/.ssh/known_hosts
sudo chmod 755 ~/.ssh

Referencias

  bash key chmod 

Publicado: 1 de junio de 2020