SSH en Linux
El servicio SSH es lo primero que deberías configurar en un sistema Linux. Con OpenSSH tienes un conjunto de herramientas, entre ellas ssh, sshd, scp, etc. que te permiten activar la posibilidad de acceder mediante una Shell Segura remota a tu equipo. Si vienes de la epoca del “telnet” deberías olvidarte de él, el sustituto hoy en día es SSH.
Configuración SSH
Vamos a ver la configuración de SSH que uso en mi servidor y en un cliente. Tienes mucha más información en la documentación de openssh.
Servidor
Veamos las tres opciones más importantes
- Instalación en Gentoo:
emerge -v openssh
- Arranque en Gentoo:
/etc/init.d/sshd start
- Arranque durante el boot en Gentoo:
rc-update add sshd default
Consulta el fichero /etc/ssh/sshd_config
antes de arrancar SSH. En mi caso impido el login como root (PermitRootLogin
), impido el uso de PAM (UsePAM
) y prohibo el uso de una password normal de usuario (PasswordAuthentication
), de esta forma solo nos queda el uso de una pareja de claves pública/privada :-)
- Ejemplo de configuración
/etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
AuthenticationMethods publickey
UsePAM no
X11Forwarding yes # !! X11 !!
X11DisplayOffset 10 # !! X11 !!
X11UseLocalhost yes # !! X11 !!
AddressFamily inet
PrintMotd no
PrintLastLog no
Subsystem sftp /usr/lib64/misc/sftp-server
AcceptEnv LANG LC_*
Cliente
A continuación muestro la configuración de un cliente SSH, se trata del que utilizo más a menudo, el que viene con MacOS.
- Configuración del cliente SSH en MacOS
/Users/luis/.ssh/config
PubkeyAuthentication yes
Host *
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
Generación de clave pública/privatda
Veamos cómo generar la pareja de claves, de tipo RSA. En el ordenador “cliente”, en este ejemplo lsa claves se van a guardar en el directorio /Users/luis/.ssh/
, uno de los ficheros con nombre id_rsa
(clave privada que nunca debes compartir con nadie) y el fichero id_rsa.pub
que debes enviar al servidor.
luis@idefix ~ $ ssh-keygen -t rsa -b 2048
:
- Envío de la clave pública al Servidor
El siguiente paso consiste en instalar la clave pública (está en el fichero ``$HOME/.ssh/id_rsa.pub) al Servidor. Es un fichero de texto y tienes que **añadir** su contenido al fichero
$HOME/.ssh/authorized_keys` del usuario del servidor al que conectarás.
Enviamos por “algún método” el fichero id_rsa.pub
al servidor
luis@servidor ~ $ cat /tmp/id_rsa.pub >> .ssh/authorized_keys
Conectar desde el cliente
Conexión desde el cliente. Volvemos al ordenador del cliente nos conectamos con el servidor
luis2idefix ~ $ ssh servidor.midominio.com
No dejes de consultar el apunte sobre X11 desde root
, donde vuelvo a hablar de SSH y veo opciones adicionales.