Como se instala el servidor
apt install openssh-server
Como se instala el cliente y el servidor
apt install ssh
Qué fichero de configuración hay en el servidor
/etc/ssh/sshd_config
- Port 22
- ListenAddress 192.168.0.22
- PermitRootLogin no
- PasswordAuthentication no
- AllowUsers user1,user2
- AllowGroups sshmembers
- ClientAliveInterval 300 (timeout en segundos)
Dónde está el fichero de configuración en el cliente
/etc/ssh/ssh_config
Como generar el par de claves en el cliente SSH para acceder mediante clave pública al servidor
$ ssh-keygen -t rsa/dsa/ecdsa -b numero _ bits _ clave
Esas claves que se generen se guardan en el directorio
- /home/username/.ssh/id _ rsa
- /home/username/.ssh/id _ rsa.pub
(Habrá dos ficheros, el id _ rsa (clave privada) y el id_rsa.pub (clave pública)
(-t y -b) definen el tipo de algoritmo y el número de bits (longitud) de la clave
Qué hay que hacer con la clave pública del cliente
1 opción:
ssh-copy-id username@remotehost (sobre el servidor)
(copiará el contenido de ~/.ssh/id _ rsa.pub dentro del directorio authorized _ keys del servidor)
2 opción:
Si no tenemos ese comando, habrá que hacerlo manualmente:
- $ cat ~/.ssh/id _ rsa.pub
- dentro de ~/.ssh/id _ rsa.pub coger la clave pública, etc, etc
Una vez que la clave pública esté en el directorio authorized _ keys del servidor, cuando se acceda con:
$ ssh username@remote _ host , automáticamente, por debajo, se autenticará con la clave pública y se deberá desactivar la opción de PasswordAuthentication del directorio de configuración del servidor: /etc/ssh/sshd _ config
Qué fichero existe en el servidor para almacenar las claves públicas de los clientes autorizados a conectarse
Qué fichero existe en el cliente para almacenar los fingerprint (huellas) de los servidores (equipos, etc) a los que nos hemos conectado con anterioridad, y por lo tanto, serán confiables
Como mostrar en el servidor el fingerprint de la clave pública que va almacenarse en ~/.ssh/known_hosts dentro del cliente
ssh-keygen -l -f ssh _ host _ ecdsa _ key.pub (si las hemos generado con ecdsa, por ejemplo)
-l indica que quieres ver el “fingerprint” (huella digital) del archivo de clave en lugar de generar una nueva.
-f especifica el nombre del archivo de entrada que se va a procesar.
Directorios de autenticación con el host (dentro del servidor)
Los públicos
- /etc/ssh/ssh _ host _ rsa _ key.pub
- C:\ProgramData\ssh\ssh_host_ecdsa_key.pub ejemplo en Windows
Cómo conectar al host e iniciar una sesión interactiva remotamente
ssh username@remote_host
Comando para recopilar claves publicas de ciertos hosts
ssh-keyscan
Cómo conectar al host e iniciar una sesión interactiva remotamente
ssh -l username@remote_host
Como se lanza comandos en remoto al servidor
ssh username@remote_host comando
Programa auxiliar que gestiona tus claves privadas SSH en memoria, permitiéndote autenticarte automáticamente en servidores remotos sin tener que introducir la frase de contraseña (passphrase) cada vez
u
ssh-agent (agente de autenticación)
Comando utilizado para añadir claves privadas al agente de autenticación SSH (ssh-agent)
ssh-add
Como conectar a un puerto distinto del puerto 22
ssh -p puerto username@remote_host
Con que comando se copian ficheros en remoto
Con scp
scp -r (copia recursiva)
scp -p (preservará los tiempos de modificación iniciales y los atributos del archivo)
scp -l (limita el ancho de banda usado. Kbit/s)
Comando que permite que un servidor remoto (al que te acabas de conectar) utilice tus claves SSH locales para autenticarse en otros servidores, sin que tengas que copiar tus claves privadas al servidor intermedio
ssh -A
se utiliza para habilitar el reenvío del agente de autenticación (agent forwarding) durante una sesión SSH
Sirve para activar el Agent Forwarding (reenvío de agente).
En términos sencillos: permite que, una vez que te has conectado a un servidor remoto, puedas usar tus claves SSH locales desde ese servidor para conectarte a un tercer equipo, sin tener que copiar tus claves privadas al servidor intermedio.
Comandos para crear túneles SSH, permitiendo que el tráfico de red viaje de forma segura entre computadoras
ssh -L y ssh -R
- ssh -L : de manera Local
- ssh -R : de manera Remota