Conexion segura con servidor ssh en CentOS 7
El servidor de shell seguro o SSH (Secure SHell) es un servicio muy similar al servicio telnet ya que permite que un usuario acceda de forma remota a un sistema Linux pero con la particularidad de que, al contrario que telnet, las comunicaciones entre el cliente y servidor viajan cifradas desde el primer momento de forma que si un usuario malintencionado intercepta los paquetes de datos entre el cliente y el servidor, será muy dificil que pueda extraer la información ya que se utilizan sofisticados algoritmos de cifrado.
Conectar con el servidor
ssh root@direccionIP
Generar claves pública y privada para ssh
ssh-keygen (todo junto)
1. La clave privada la guarda en el directorio actual
2. Introducir nombre de archivo donde guarda clave privada
3. Introducir parafrase y repetir
4. Crea una clave pública en el directorio actual llamada nombreArchivoClavePrivada.pub
5. Para ver la clave pública cat nombreArchivoClavePrivada.pub
6. su – usuario
7. Deberia situarte en el directorio del usuario si no estas ya
9. Crea un directorio .ssh y restringe permisos
10. mkdir .ssh
11. chmod 700 .ssh
12. Crear archivo authorized_keys en el directorio .ssh y copiar clave publica o copiar directamente nombreArchivoClavePrivada.pub
14. cp nombreArchivoClavePrivada.pub /home/.ssh/authorized_keys
15. cambiar permisos a chmod 600 .ssh/authorized_keys
16. exit
Configurar sshd_config
nano /etc/ssh/sshd_config
El puerto por defecto es el 22, se puede cambiar en la línea
#Port 22 (cambiar y descomentar la línea)
#PermitRootLogin yes (cambiar a no y descomentar)
Habilitar el nuevo puerto, por ejemplo 3499
semanage port -a -t ssh_port_t -p tcp 3499
…esperar
Si no esta instalado semanage instalarlo
sudo yum install policycoreutils-python
Regla para que permita la escucha el firewall por el nuevo puerto
firewall-cmd ––permanent ––zone=public ––add-port=4499/tcp
…sistema responde success
Reiniciamos firewall
firewall-cmd ––reload
…sistema responde success
Reiniciar ssh
systemctl reload sshd.service
Comprobar que ssh esta ejecutando y escuchando
ss -tnlp | grep ssh
Respuesta sistema
LISTEN 0 128 *:4499 *:* users:((«sshd»,16606,3))
LISTEN 0 128 :::4499 :::* users:((«sshd»,16606,4))
Conectar de nuevo
ssh -p puerto usuario@direccionIP