Vamos a ver cómo copiar una clave pública SSH con scp o con ssh-copy-id, al server Linux donde queremos acceder por medio de publickey, sin usar password.
Después de generar una clave pública y una clave privada SSH, hemos de copiar la clave pública del host, en el server al que queremos acceder por medio de clave pública de ese host. Lo podemos hacer con SCP o con ssh-copy-id.
—> Recordemos que la clave pública que copiaremos en el server, la hemos generado desde un host, con el comando ssh-keygen; este comando generará el par de archivos de clave pública y clave privada.
En este artículo:
- Copiar clave pública SSH desde un host a un servidor remoto
- con scp (secure copy protocol)
-
- copiar un archivo local (el archivo de clave pública id_rsa.pub) con scp, desde nuestro host (local) a un host remoto (el server).
- SCP: copiar un archivo desde un equipo remoto al equipo local
- SCP: copiar de un equipo remoto a otro
- Tras copiar la clave pública en el host remoto por medio de scp, añadirla a su archivo authorized_keys del server SSH
-
- con scp
- con ssh-copy-id
- con scp (secure copy protocol)
COPIAR LA CLAVE PÚBLICA DESDE EL HOST REMOTO AL SERVIDOR SSH
Tenemos 2 formas de copiar la clave pública SSH:
-
Copiar clave pública SSH por medio de SCP
—> En este caso se trata de copiar un archivo local (la clave pública id_rsa.pub) con scp, desde nuestro host a un host remoto (el server): luego extraeremos el contenido de ese archivo y lo añadiremos al archivo authorized_keys del servidor SSH
scp /home/usuario/.ssh/id_rsa.pub SERVER:/home/usuario |
—> También podríamos copiar un archivo desde un equipo remoto al equipo local
scp user@hostname-remoto:/ruta/archivo/origen /ruta/equipo/local |
—> Y por último podríamos copiar archivos de un equipo remoto a otro
scp user@hostname-remoto:/ruta/archivo/origen user@hostname-remoto2:/ruta/archivo/destino |
Tras copiar la clave pública en el host remoto por medio de scp, hemos añadirla a su archivo authorized_keys del server SSH
Si hemos copiado con scp el archivo de la clave pública SSH (id_rsa.pub) en un directorio del server SSH, luego iniciamos sesión en dicho servidor, y el contenido del archivo id_rsa.pub, lo introducimos con el comando cat (concatenar) dentro del archivo /.ssh/authorized_keys
cat /home/usuario/id_rsa.pub >> /home/usuario/.ssh/authorized_keys |
*** cuidado de no usar > porque machacaríamos ( > sobreescribe, mientras que >> añade) el contenido del archivo que hubiese anteriormente. ***
-
Copiar clave pública SSH por medio de ssh-copy-id
—> La utilidad ssh-copy-id permite enviar directamente la clave pública al server, a su archivo authorized_keys.
ssh-copy-id es un script que usa SSH para introducir las claves públicas dentro del archivo authorized_keys. Podemos encontrarlo en el directorio /bin; su ruta completa es /bin/ssh-copy-id.
Además cambia los permisos del directorio /home del usuario remoto, de su directorio ~/.ssh, y de fichero ~/.ssh/authorized_keys, eliminando los permisos de escritura del grupo, lo que evita que en ocasiones no podamos acceder o escribir en dichos directorios.ssh-copy-id -i /path/to/key.pub SERVERNAME
Aquí vemos el proceso de copia de clave pública por medio de ssh-copy-id
(desde un host llamado “centos7” copiamos la clave pública al host llamado “centos“).
[root@centos7 ~]# ssh-copy-id -i /root/.ssh/id_rsa centos /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@centos's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'centos'" and check to make sure that only the key(s) you wanted were added.
Reiniciar SSH
Después de copiar las claves públicas, reiniciamos el servicio SSH con:systemctl restart sshd.service
Comprobar acceso SSH con clave publica
Ahora ya podemos conectar por ssh y usar la clave pública:ssh usuario@hostname-remoto
Más info sobre cómo generar y configurar las claves SSH en CentOS 7.