Archivo de la etiqueta: retringir ssh

SSH Public Key

Restringiendo el acceso al SSH

Existe un método de para hacer más seguro nuestro SSH, consiste en crear lo que se llama Public Key Authentication. Esto aumenta la seguridad del SSH ya que no sera posible conectarse si no se tiene la llave privada.

Utilizando estas llaves, se hace imposible para cualquier persona que desea acceder a nuestro SSH utilizar metodos de fuerza bruta, ya que para poder acceder a nuestro SSH es necesario que tenga nuestra llave privada y porsupuesto… no se la vamos a dar.

Accedemos como siempre a nuestro SSH

ssh -p 5685 root@127.0.0.1

Y ahora creamos las llaves con ssh-keygen

ssh-keygen -t dsa

Le damos enter a todas las preguntas que aparecen, ya que en este caso lo predeterminado esta perfecto, en uno de los pasos nos pedirá una passphrase para doble seguridad, no es necesario tenerla pero si la necesitas, ponla.

Al finalizar, movemos el archivo recien creado a ~/.ssh/authorized_keys

mv ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys

Si nos advierte que se va a sobre-escribir algo, le decimos que si.

ahora cambiamos los permisos de los archivos.

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/*
chmod 0751 ~

Y pedimos que nos muestre la llave privada.

cat ~/.ssh/id_dsa

en la terminal nos aparecerá algo como esto:

-----BEGIN DSA PRIVATE KEY-----
MIIBugIBAAKBgQC/v+peIz+W3casWGsSiGZpjuW6q4kTv/2zv5/AhXeO7n8yvRwE
XyBE+FVID/EhifJwMg4/wXNprw79m9u7uVpeUrLXT+cg091uAgaU7Y/htncaX1cG
GzHnyr+lQ0oFeBHq1hsdfsdfwsw4pMeFvKMmKVIWLZssQ5cGCK2IpTqajvQIVAL7W
gi0D2Ac77t08yJg9oT+OFJ+lAoGAQLxdr8okIiWKkcBTfx710t1zhrr4Z4md3siK
0c9g4mhFbrBcDH1b2TaZz652XE1UwC7XF3N7ll+Jx/G8vmjbWdQzl6AbAp6bR28O
XItBba/BgZ9bAqwkzd4ZcSSRtbdhdFh9ng0gkgZwVJTCgaLF05XOa++aBY8AGl7p
erery45y56y6h6dswvbbbfVScq7n2gy3ta+kz7B9uPMUBmwxcSHlmS6mEmfVNTk
KR1ACDQSJfV+Py32V3z5Q9VSdm4e67exqx5+m5X7SW21TzB+rEY5Wmuryz1K4slf
nBZ/pOu+VQEqmILUR5WOqREfW9Y6TjFXQ0eAqUjKQwUHWYLzLYK28gIUYogpUYPO
+6g232CwQMxebTPYV5U=
-----END DSA PRIVATE KEY-----

Copiamos eso, lo pegamos en un editor de texto y lo guardamos en la computadora local como id_dsa, o si lo prefieren, pueden descargarlo por medio de FTP.

Despues de haber guardado el archivo en la computadora local, debemos borrarlo del VPS ya que no debe permanecer en él. Se puede borrar por FTP o usando el comando:

rm -f ~/.ssh/id_dsa

Ahora con el archivo que nos quedo en la PC local, tenemos 2 casos.

Si la computadora local también tiene linux, debemos mover el archivo id_dsa a la carpeta .ssh del usuario que utilizamos para la computadora local, lo podemos hacer usando la interfaz gráfica o más rápido por la terminal.
Por ejemplo, si lo guardamos el archivo id_dsa en el escritorio, debemos moverla así:

mv /home/usuario/Escritorio/id_dsa /home/usuario/.ssh

Por otro lado, si tenemos Windows y usamos PuTTY para conectarnos al SSH, debemos seguir las instrucciones en el tutorial:Convertir Llaves DSA de OpenSSH para PuTTY

Finalmente, debemos deshabilitar el acceso al SSH por medio de contraseña, para hacer esto, editamos el archivo /etc/ssh/sshd_config

nano /etc/ssh/sshd_config

y editamos algunas lineas para que queden asi: (OJO: los […] los coloco para indicar que son otras lineas solo para ubicarnos relativamente en el documento.)

[...]
# Autehentication:
[...]
RSAAuthentication yes
PubkeyAuthentication yes
[...]
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
[...]
ChallengeResponseAuthentication no
[...]
UsePAM no

Reiniciamos el servidor SSH:

/etc/init.d/ssh reload

Ya con esto, la única manera de conectarse al SSH es teniendo la llave DSA.