Abrimos una terminal o buscamos en nuestro Gestor de paquetes openssh:
[$] apt-get install openssh-server
Una vez ha terminado de instalarlo, procedemos a probarlo:
[$] ssh localhost
Si es la primera vez que nos conectamos a nuestra máquina, nos aparecerá lo siguiente:
|
The authenticity of host ‘localhost (127.0.0.1)’ can’t be established. RSA key fingerprint is XX:06:XX:XX:XX:7c:XX:75:XX:42:XX:XX:3d:XX:87:XX. Are you sure you want to continue connecting (yes/no)? |
Escribimos yes, y la firma de nuestra máquina pasa a nuestro fichero de de hosts conocidos.
No obstante, si hemos importado la configuración de nuestro usuario o bien reinstalado el sistema pero dejando intacta la partición con los ficheros de los usuarios (/home), nos podemos encontrar con este problema a la hora de conectarnos:
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
|
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! |
La firma de la máquina a la que nos queremos conectar, la nuestra, obviamente es diferente a la que hay en el fichero /home/usuario/.ssh/known_hosts
Por lo que nos advierte de que probablemente no nos estemos conectando realmente con la máquina que deseamos directamente, y pueden estar espiando.
Podemos solucionar esto cambiando la firma en el fichero, o bien algo más drástico pero simple: cambiar el nombre del fichero de forma provisional o bien borrándolo.
De esta manera, la próxima vez que se conecte, generará un nuevo fichero con la firma-clave correcta.
[$] mv $HOME/.ssh/known_hosts $HOME/.ssh/known_hosts.copia
A continuación nos preguntará la contraseña de nuestro usuario en el sistema, y si tenemos permiso podremos acceder.
Si todo ha funcionado tendremos una terminal esperando ordenes. Para salir, escribimos
[$] exit
Vamos ahora a configurar nuestro servidor de ssh, editamos el fichero /etc/ssh/sshd_config
[$] sudo nano /etc/ssh/sshd_config
Podemos consultar los parámetros de configuración con [$] man sshd
Con el fin de intentar evitar que personas indeseadas entren en nuestro sistema, es recomendable cambiar el puerto que aparece por defecto, 22. Podemos incluso usar varios puertos.
Para ello modificamos Port 22, por ejemplo: Port 32541
Es recomendable deshabilitar la entrada del administrador del sistema (root) escribiendo:
PermitRootLogin no
Para restringir que usuarios pueden acceder al sistema mediante ssh, escribimos “AllowUsers” seguido de los usuarios a los que autorizamos.
AllowUsers lycoris
De esta forma únicamente el usuario lycoris puede acceder.
Para ver estos cambios reiniciamos el servicio:
[$] sudo /etc/init.d/ssh restart
Una pregunta desde la ignorancia… para que sirve esto del SSH??
Un saludo y gracias
P.D: Gran blog, lo visito casi a diario
Maknolo, esto del SSH es de lo mejor que tiene Linux. Poder acceder al sistema desde cualquier parte. Y si lo combinas con el NX (http://www.nomachine.com) pues puedes tener una sesión en modo gráfico. Existe también una versión de código abierto llamada FreeNX (no la he probado). El software de NoMachine es de uso gratuito para hasta 3 accesos simultáneos (creo), la he probado y es realmente bueno. No es exactamente lo mismo que el VNC, para mí debiera de haber una mezcla de los dos para ser la bomba.
Porque el VNC no te permite abrir una sesión (que yo sepa), si no ver una sesión que está activa. Y el otro es al revés, no te permite ver una sesión que esté activa, pero si crearla e incluso continuar con ella en otro momento.
Saludos y gracias por continuar con el proyecto de Linux 120%. (Menos mal que no había borrado el enlace RSS,
).
Cuidado. Un par de cositas que son importantes:
* Primero voy a explicar que un pool es un sistema que permite hacer “ssh usuario@pool.dominio.edu“, y automáticamente, el pool elige la máquina menos ocupada y nos conecta, por ejemplo, a pool227.dominio.edu. La siguente vez que queramos establecer una conexión, el pool va a elegir, muy probablemente, otra máquina distinta, con otro “fingerprint” de su clave pública. Para hacer esto cómodamente, el known_hosts debe contener una línea para cada máquina que forma parte del pool, ya que de no ser así, cuando el pool nos conecte a una máquina diferente vamos a obtener el mensaje de error porque el “fingerprint” obtenido de pool.dominio.edu no va a ser el de pool227, sino el de pool131. Un known_hosts así puede habernos costado trabajo de crear. Por lo tanto, no es buena idea borrar el ~/.ssh/known_hosts para modificar una sola entrada que ha cambiado, porque lo normal es que no nos interese borrar también todas las demás. Para borrar una sola entrada, podemos hacer “ssh-keygen -R servidor.que.ha.cambiado.su.clave.edu -f ~/.ssh/known_hosts”, o simplemente borrar manualmente la línea de known_hosts, ya que el mensaje de error de ssh nos da el número de línea que da conflicto.
* Cambiar el puerto del servidor de ssh no añade ninguna seguridad. Un scan de puertos con nmap tarda del orden de unos pocos segundos en determinar cuáles están abiertos (un usuario doméstico con un ordenador no muy complicado, normalmente va a tener menos de 10 puertos abiertos). Conocidos los puertos abiertos, se tardan unos pocos segundos en determinar qué servicio se ofrece en cada uno de ellos. Cuidado: que nadie confíe en la seguridad de cambiar el puerto de ssh, que no sirve para nada. El cambio de puertos puede ser útil para poder acceder al servidor a través de un firewall que tenga bloqueado el puerto 22, por ejemplo, pero para nada que tenga que ver con la seguridad.
Saludos.
Buenas Jordix,
“Podemos solucionar esto cambiando la firma en el fichero, o bien algo más drástico pero simple: cambiar el nombre del fichero de forma provisional o bien borrándolo.”
Como bien dices es poco eficiente borrar el fichero known_hosts entero.
Pero si sigues la línea del artículo, verás que no está orientado a conectarse desde ssh aunque podría dedicar una entrada al uso de ssh, scp y sftp, sino a crear un servidor y configurarlo de la forma más simple.
Por ese motivo, hago el inciso en el caso particular que ya existiera un fingerprint de la maquina en el home de ese usuario.
y evidentemente la forma menos complicada de hacerlo para una persona que se inicia, es renombrar el fichero.
Respecto a cambiar el puerto, efectivamente mediante nmap y otros programas podemos ver aquellos puertos que están abiertos.
No obstante, a la hora de escanear la maquina se suelen escanear aquellos puertos predeterminados asociados a determinados servidores-demonios.
Disculpa si el articulo da a entender que se trata de la defensa definitiva, ni mucho menos. Pero he tratado de que fuese una introducción lo más concisa y simple posible.
La segunda parte, la tengo escrita desde hace días pero todavía no la he publicado, comento las opciones de configuración más interesantes que nos ayudan a restringir el acceso y cómo crear una jaula con los servicios mínimos.
Saludos
@LuigiXXI
Hola, yo uso Nomachine y SI permite abrir sesión activa.
Debes usar la opcion Shadow (en tipo de escritorio).