Paso 2: Copiar la clave pública al servidor Ubuntu
La alternativa más rápida para copiar su clave pública al host de Ubuntu es usar una utilidad llamada ssh-copy-id. Debido a su simplicidad, este método se recomienda mucho si está disponible. Si no tiene la utilidad ssh-copy-id disponible en su máquina cliente, puede usar uno de los dos métodos alternativos proporcionados en esta sección (copiar mediante SSH con contraseña o copiar manualmente la clave).
Copiar clave pública usando ssh-copy-id
La herramienta ssh-copy-id se incluye por defecto en muchos sistemas operativos. Por ello, es posible que tenga la posibilidad de disponer de ella en su sistema local. Para que este método funcione, ya debe disponer de acceso con SSH basado en contraseña en su servidor.
Para usar la utilidad, especifique el host remoto al que desee conectarse y la cuenta de usuario a la que tenga acceso mediante SSH con contraseña. Esta es la cuenta a la que se copiará su clave de SSH pública.
La sintaxis es la siguiente:
ssh-copy-id username@remote_host
Es posible que vea el siguiente mensaje:
Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Esto significa que su computadora local no reconoce el host remoto. Esto sucederá la primera vez que establezca conexión con un nuevo host. Escriba “yes” y presione ENTER para continuar.
A continuación, la utilidad analizará su cuenta local en busca de la clave id_rsa.pub que creamos antes. Cuando la encuentre, le solicitará la contraseña de la cuenta del usuario remoto:
Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:
Escriba la contraseña (por motivos de seguridad, no se mostrará lo que escriba) y pulse ENTER. La utilidad se conectará a la cuenta en el host remoto usando la contraseña que proporcionó. Luego, copie el contenido de su clave ~/.ssh/id_rsa.pub a un archivo en el directorio principal de la cuenta remota ~/.ssh, llamado authorized_keys.
Debería ver el siguiente resultado:
Output
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.
En este punto, su clave id_rsa.pub se habrá cargado en la cuenta remota. |Puede continuar con el paso 3.
Copiar clave pública usando SSH
Si no tiene ssh-copy-id disponible, pero tiene acceso de SSH basado en contraseña a una cuenta de su servidor, puede cargar sus claves usando un método de SSH convencional.
Podemos hacer esto usando el comando cat para leer el contenido de la clave de SSH pública en nuestra computadora local y canalizando esto a través de una conexión SSH al servidor remoto.
Por otra parte, podemos asegurarnos de que el directorio ~/.ssh exista y tenga los permisos correctos conforme a la cuenta que usamos.
Luego podemos transformar el contenido que canalizamos a un archivo llamado authorized_keys dentro de este directorio. Usaremos el símbolo de redireccionamiento >> para anexar el contenido en lugar de sobrescribirlo. Esto nos permitirá agregar claves sin eliminar claves previamente agregadas.
El comando completo tiene este aspecto:
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Es posible que vea el siguiente mensaje:
Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Esto significa que su computadora local no reconoce el host remoto. Esta pasará la primera vez que establezca conexión con un nuevo host. Escriba yes y presione ENTER para continuar.
Posteriormente, deberá recibir la solicitud de introducir la contraseña de la cuenta de usuario remota:
Output
username@203.0.113.1's password:
Una vez que ingrese su contraseña, el contenido de su clave id_rsa.pub se copiará al final del archivo authorized_keys de la cuenta del usuario remoto. Continúe con el paso 3 si el procedimiento se completó de forma correcta.
Copiar la clave pública de forma manual
Si no tiene disponibilidad de acceso de SSH basado en contraseña a su servidor, deberá completar el proceso anterior de forma manual.
Habilitaremos el contenido de su archivo id_rsa.pub para el archivo ~/.ssh/authorized_keys en su máquina remota.
Para mostrar el contenido de su clave id_rsa.pub, escriba esto en su computadora local:
cat ~/.ssh/id_rsa.pub
Verá el contenido de la clave, que debería tener un aspecto similar a este:
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
Acceda a su host remoto usando el método que esté a su disposición.
Una vez que tenga acceso a su cuenta en el servidor remoto, debe asegurarse de que exista el directorio ~/.ssh. Con este comando se creará el directorio, si es necesario. Si este último ya existe, no se creará:
mkdir -p ~/.ssh
Ahora, podrá crear o modificar el archivo authorized_keys dentro de este directorio. Puede agregar el contenido de su archivo id_rsa.pub al final del archivo authorized_keys y, si es necesario, crear este último con el siguiente comando:
echo public_key_string >> ~/.ssh/authorized_keys
En el comando anterior, reemplace por el resultado del comando cat ~/.ssh/id_rsa.pub que ejecutó en su sistema local. Debería iniciar con ssh-rsa AAAA….
Por último, verificaremos que el directorio ~/.ssh y el archivo authorized_keys tengan el conjunto de permisos apropiados:
chmod -R go= ~/.ssh
Con esto, se eliminan de forma recursiva todos los permisos “grupo” y “otros” del directorio ~/.ssh/.
Si está usando la cuenta root para configurar claves para una cuenta de usuario, también es importante que el directorio ~/.ssh pertenezca al usuario y no sea root:
chown -R sammy:sammy ~/.ssh
En este tutorial, nuestro usuario recibe el nombre , pero debe sustituir el nombre de usuario que corresponda en el comando anterior.
Ahora podemos intentar la autenticación sin contraseña con nuestro servidor de Ubuntu.
2 comentarios. Dejar nuevo
Genial, guardado en favs
[…] Tener incorporada una clave SSH pública en el panel del equipo. Tutorial “Crear una clave SSH desde Ubuntu 20.04 para Digital Ocean” https://vergaracarmona.es/crear-una-clave-ssh-desde-ubuntu-20-04-para-digital-ocean/ […]