Hay veces, que al controlar varias máquinas el tener que acordarse de todos los certificados e IPs es demasiado trabajo. Y como bien dicen, el buen administrador de sistemas cuanto mas vago y mas automatice todas las tareas mejor. Por ello en este post explicaré como haciendo un simple ssh “nombre_máquina” nos podríamos conectar directamente independientemente de con que usuario estemos logados o en que puerto esté escuchando el otro host.
Configuración
Para empezar, crear la llave en nuestro host
ssh-keygen
Generating public/private rsa key pair. Enter file in which to save the key (/home/ismael/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <sin contraseña> Enter same passphrase again: <sin contraseña> Your identification has been saved in /home/ismael/.ssh/id_rsa. Your public key has been saved in /home/ismael/.ssh/id_rsa.pub. The key fingerprint is: 43:d5:e7:46:94:bkt:f0:e8:f:fr:c1:ed:gt:f:84:de ismael@laptop The key's randomart image is: +---[RSA 2048]----+ | .o++. | | ...+o | | o ..o .o | | -.o o. | | AE | | . + o | | o . + o | | + . . E| | . | +-----------------+
Una vez hecho esto, ahora procederemos a copiar el key a la máquina a la que queremos conectarnos.
ssh-copy-id root@<host_remoto> -p<puerto>
Por último, crear el fichero config en el directorio ssh
vim ~/.ssh/config
Host <nombre que se le quiere dar> user <usuario> hostname <IP o DNS> port <puerto> #Por defecto cogerá ~/.ssh/id_rsa pero si se ha generado en otro sitio habría que indicarle Identityfile <key generada>
Nota: Asegurarse de que el archivo config tiene los permisos correctos
-rw-r--r--. 1 ichasco 126 nov 4 17:06 config
Ahora ya con ejecutar ssh <nombre_host> accederíamos directamente a la máquina. Pero todavía podemos ser mas vagos y ahorrarnos el ssh con un alias
alias <comando nuevo>='<comando>' ejemplo: alias ichasco='ssh ichasco'
En este caso ichasco sería el nombre que le he dado a mi host en el fichero ~/.ssh/config
El alias este, no sería permanente. Para ello descomentar en el fichero ~/.bashrc lo siguiente:
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Y una vez hecho esto, editar el ~/.bash_aliases y añadir el alias
alias <comando nuevo>='<comando>'
Y por ultimo ejecutar los cambios con el comando bash
bash
En el caso de que se use zsh, el procedimiento es el mismo, pero hay que editar otro fichero
vim ~/.zshrc
Y para aplicar los cambios
zsh