Usuario
Password
¿Olvidaste tu contraseña?
no me gusta1me gusta

Programas Manual SSH

 by copycdr

SSH son las siglas de Secure SHell. Lo que te ofrece es una consola en un ordenador remoto con los privilegios que tenga la cuenta con la que conectes. Es decir, si en tu PC tienes varias cuentas, puedes conectar desde otro ordenador al tuyo con cualquiera de esas cuentas y sus respectivos privilegios, como pudiera ser la cuenta root, la de tu administrador sudo o la de un usuario normal sin poder de administración. Y todo esto con encriptación de datos.

En este tutorial voy a mostrar algunas facetas de su uso, pero antes debes saber que tener el servidor de SSH corriendo es de cierto riesgo, ya que si no tocas la configuración por defecto para aumentar la seguridad a un nivel más que aceptable, puede ser un agujero para que alguien pueda entrar en tu sistema. Pero no se preocupen, si seguís estos pasos es difícil que suceda, nunca imposible, pero sí difícil.


Instalar

En repositorios ya tenes SSH dispuesto a instalar, así:


$ sudo aptitude install ssh


Una vez instalado se autoiniciará el demonio que ejecuta el servidor SSH y gestiona las solicitudes de login remoto.
Configuración: Mayor seguridad

Como decía antes NO es muy inteligente usar SSH sin modificar el fichero de configuración del servidor. Vamos a modificar algunas opciones para conseguir una seguridad aceptable.


$ sudo gedit /etc/ssh/sshd_config


Nota: Si algunas de las opciones que aquí comento no aparecen en sshd_config, simplemente agregalas. Podes hacerlo donde quieras, aunque lo suyo es que lo hagas al principio o al final para que sepas cuales son las opciones que fueron agregadas.
Vemos un fichero de configuración típico basado en “opción valor”. Vamos a comenzar las modificaciones por el puerto que es lo primero que vemos y una de las cosas más importantes. SSH usa por defecto el puerto 22. Esto significa que si no lo cambiamos estamos entregando la dirección de dónde vivimos (nuestra IP) también el puerto.

Cambiaremos el puerto para evitarlo. Esto no quita que pueda intentar averiguar “el puerto” si sabe cómo hacerlo pero al menos le ponemos impedimentos. También hay scripts que atacan directamente el puerto 22, por lo que el cambio de puerto es algo obligatorio. Poner el que quieras y abrirlo también en el router para que puedas acceder a tu pc desde otro. Usaremos por ejemplo el 4321. Así en el fichero de configuración:

port 4321

Un poco más abajo buscar la opción “Protocol” debe estar a valor 2, si no es así (valor 1 ó 2,1 ponerla. Hay dos versiones de protocolo SSH. La primera está ya en desuso y tiene varias vulnerabilidades. Así que deberias dejarlo en esta configuración:

Protocol 2

Buscar la sección “Authentication”. Sus dos primeras opciones son también importantes. La primera es el número de segundos que tendrá el usuario remoto para hacer login en tu máquina. Poner ese valor a pocos segundos, no tardamos mucho en hacer login si sabemos la cuenta y la password. De esta forma evitamos ciertos scripts que se aprovechan de ese tiempo. El valor típico en términos de seguridad es 30, aunque podes poner incluso menos si estas más conformes.

LoginGraceTime 30

Justo debajo tenes otras de las opciones más importantes, PermitRootLogin.
Si tenemos esta opción habilitada (yes) el usuario por defecto es “root” existe en todas las máquinas GNU/Linux. Por eso es más que recomendable deshabilitar esta opción.
PermitRootLogin no

También podes señalar con el dedo las cuentas que tienen permitido el uso SSH (AllowUsers). Pongamos un ejemplo, que es como mejor se entienden las cosas: Supongamos que tienes un amigo con el que quieres compartir algo vía SSH y además tiene un hermano y en el que no confías. Llamaremos a las cuentas “amigo” y “pesado” respectivamente. Para restringir el uso de SSH a tu amigo y a tu propia cuenta (llamémosla “pepino”) podemos indicárselo mediante configuración. Incluso podemos indicar también que tu amigo sólo se pueda conectar a tu ordenador desde el suyo, sabiendo su IP (supongamos que es 83.45.258.21). Pondríamos en la configuración:

AllowUsers pepino amigo@83.45.258.21

De esta forma tú podrías usar tu cuenta (pepino) para conectar a tu equipo desde cualquier lugar, tu amigo podría hacerlo sólo desde su IP y tu hermano no podría conectar a tu máquina vía SSH, si no tiene tu cuenta.

Otra opción interesante es el número de intentos que tiene el usuario remoto para hacer login (MaxAuthTries). Como comenté antes, quien intente conectar debe acordarse de su login y password, por lo que es tontería darle un número grande de intentos. En principio con dos son más que suficientes. Si al segundo intento no lo ha conseguido se cortará la conexión SSH. Siempre se puede volver a conectar y reintentarlo, pero así nos quitamos de encima ciertos scripts que intentan encontrar el login por fuerza bruta a base de ensayo y error.

MaxAuthTries 2

Por último hay otra opción que define el número máximo de usuarios conectados simultáneamente a tu máquina. Esto ha de adaptarse a tus propias necesidades. Si estamos hablando de una pc personal donde sólo vas a conectarte, lo lógico sería que como mucho hubiera una. Si estamos hablando de una pc que hará las veces de servidor compartiendo una carpeta a varias máquinas, deberás decidir cuántos son. Cuanto tengas claro el número indícalo en la opción siguiente en lugar de la ‘X’:

MaxStartups X

Ya podes guardar y cerrar gedit. Con esto tenes un servidor SSH bastante seguro. Como comenté antes nunca es 100% seguro pero podes estar tranquilos. Sólo resta reiniciar el propio servidor SSH para que tome los cambios que hemos efectuado en su configuración. Escribir en consola:


$ sudo /etc/init.d/ssh restart


Un último consejo. Como vimos podemos poner trabas en cuanto a nuestra dirección y puerta, pero ¿podemos ponerle problemas con la contraseña?. Y la respuesta es afirmativa. Poner claves en condiciones a nuestras cuentas. Usar como poco 5 ó 6 caracteres y a ser posible que se entremezclen mayúsculas, minúsculas y números, por ejemplo:

entr3TuXeSyp3p1n0s.

Es un ejemplo exagerado, enrevesado a la hora de escribir e incómodo para meterlo en sudo cada dos por tres, pero intenta que sea del estilo y procura que no sea algo tan simple como tu nombre, el de tu perro, fecha de nacimiento, grupo favorito, etc.

Uso de SSH en consola
Conectar

Ahora que tenemos SSH seguro es hora de que veas para qué sirve. Parto de que tenes dos equipos, el que tenes delante y al que queres conectar. Obviamente debes tener una cuenta en el segundo para poder entrar. La forma de conectar por defecto es la siguiente:


$ ssh tu_cuenta@ip_del_ordenador_remoto


Esto sería si no hubiéramos cambiado el puerto, ya que intentaría conectar por el puerto 22 que es el puerto por defecto del cliente. Podes cambiarlo si queres para que conecte por defecto por el puerto que le digas en lugar del 22 editando el fichero /etc/ssh/ssh_config. Descomentar (si está comentada) la opción “Port” y en lugar de “22″ pones el que quieras.

La otra opción, que es lo más normal, es simplemente indicarle en la línea de conexión qué puerto ha de usar:


$ ssh -p puerto tu_cuenta@ip_del_ordenador_remoto


Para que lo veas más claro voy a poner un ejemplo. Mi laptop está en la ip 192.168.1.4 y el puerto SSH que tengo para el mismo es el 4884. La cuenta que voy a usar para conectarme es “pepino”, así que para conectar desde mi PC a la laptop sería:


$ ssh -p 4884 pepino@192.168.1.4


Tras esto me pedirá la contraseña:


pepino@192.168.1.4's password:


La introducimos y tras un texto de “bienvenida” veremos que nuestro prompt ha cambiado a “nombre_cuenta@nombre_manquina”. Mi laptop se llama salamandra, mi prompt es:

Cita :
pepino@salamandra:~$


A partir de este instante tu consola está controlando el equipo remoto. Estarás en el home de tu cuenta en la máquina remota. ¿Qué podemos hacer?


Copiar ficheros



Efectivamente podemos copiar ficheros fácilmente desde el ordenador remoto al que estamos usando en este momento, y es fácil (es una sóla línea):

$ scp ruta/archivo cuenta_en_ordenador_presente@ip_ordenador_presente:ruta/fichero



ruta/fichero es el lugar donde está el archivo a copiar en la primera aparición, y el lugar donde se va a copiar en la segunda. cuenta_en_ordenador_presente es la cuenta que estas usando (u otra) en la pc que tenes delante (no el remoto). La ip_ordenador_presente es precisamente la ip de tu pc. Pero como siempre mejor con un ejemplo.

Supongamos que quiero copiarme un fichero llamado pepino.jpg que está en el escritorio de la cuenta “pepino” de la laptop (el ordenador remoto) y quiero copiármelo en el home de la cuenta “tux” de mi pc presente, cuya ip es 192.168.1.6. Ya que estoy quiero aprovechar y cambiarle el nombre. Quiero que se llame pepinaceo.jpg en lugar de
pepino.jpg. Escribiremos en el SSH (es una sóla línea):

$ scp -P 8448 /home/pepino/Desktop/pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg



Nos pedirá la contraseña de la cuenta “tux” en la pc que tenemos delante y copiará el archivo:


pepino@192.168.1.4's password:
pepinaceo.png 100% 292KB 291.7KB/s 00:00



Y si ya estuvieramos en el escritorio (prompt: pepino@salamandra:~/Desktop$) no habría que poner toda la ruta si no queremos ya que tomaría la ruta relativa a la actual:



$ scp -P 8448 pepino.jpg tux@192.168.1.6:/home/tux/pepinaceo.jpg



Nota: Ojo con la ‘P’ que en este caso debe ser mayúscula.
Otra gracia del asunto es que no tienes por qué copiarlo a tu equipo actual. Si tienes acceso a otro ordenador más, puedes copiar algo de uno al otro del mismo modo, es decir, teniendo login en ambos y sabiendo su IP. Por otro lado si lo que queremos copiar es una carpeta, basta con añadirle el parámetro ‘-r’ para que copie todo su contenido (r=recursivo).

Otros usos

Para un sistema GNU/Linux el interfaz no lo es todo, de hecho es prácticamente una aplicación que está corriendo bajo el propio sistema operativo, por lo que podes administrar perfectamente tu equipo desde una consola y con acceso remoto vía SSH. Dentro de una conexión SSH, podes reiniciarlo:


pepino@salamandra:~$ sudo reboot
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:45 ...
The system is going down for reboot NOW!



O apagarlo:

pepino@salamandra:~$ sudo halt
Broadcast message from pepino@salamandra
(/dev/pts/1) at 23:51 ...
The system is going down for halt NOW!



O usar cualquier otra aplicación de texto, si queres podes navegar en la consola y descargar algo en tu máquina estando en otra.

El abanico de posibilidades es realmente inmenso.

SSH en Nautilus

Lo cierto es que si lo que queremos es simplemente copiar archivos o ver el contenido de alguno de ellos que están en otra máquina, podemos usar nautilus que siempre será más amigable para algunos que a través de consola.

No hay mucho cambio al respecto. Alt+F2 y escribir dentro “nautilus”. Se abrirá el navegador de archivos. Nautilus tiene dos formas de mostrarte dónde estás dentro de la jerarquía de directorios. Una es a través de botones donde cada carpeta es un botón que puedes pulsar para volver atrás:

Y otra que te indica la ruta en modo texto:

Para cambiar de un modo al otro pinchar en el icono que está a la izquierda del todo que es un folio escrito y un lápiz. Nos quedaremos en el segundo modo y en la caja de texto de “Lugar:” escribiremos la orden de conexión:


ssh://tu_cuenta@ip_pc_remoto



Siguiendo con los ejemplos anteriores:


ssh://pepino@192.168.1.4


Esto sería si el puerto es el que está por defecto, como nosotros lo cambiamos tenemos que indicárselo con “:puerto” tras la ip. En nuestro ejemplo:


ssh://pepino@192.168.1.4:4884


Ahora nos pedirá la contraseña de la cuenta. Tenomos estas tres opciones:

Tomar la decisión que quieras. Personalmente yo soy de los que prefieren tomarse la molestia de introducir la clave en cuestiones tan importantes como es la seguridad de SSH.

Tras esto nos colocará en la raíz de la máquina remota. Si lo que queríamos era que nos dejara en una carpeta determinada se lo podemos indicar en la línea de conexión. Por ejemplo en el escritorio de nuestra cuenta:

Cita :
ssh://pepino@192.168.1.4:4884/home/pepino/Desktop/


Ahora podéis copiar archivos y carpetas con total comodidad desde vuestro escritorio

GNOME.

Ejecutar aplicaciones gráficas remotamente

Otra cosa muy práctica que podemos hacer gracias a SSH es ejecutar una aplicación que no tenemos en el equipo actual pero sí en el remoto y trabajar ahí. Es decir, puedes mirarlo como un servidor de trabajo gráfico. Si aún no queda claro pongo otro ejemplo:

Mientras estabas fuera de casa tu hermano esta usando la pc porque tiene que hacer algo. Te pones en el equipo de tu hermano y abres la aplicación que necesites de tu propia pc en el PC de tu hermano.
Basta con añadir un argumento más (-X) y el nombre de la aplicación que queremos usar. Por ejemplo imaginemos que queremos jugar a Doom en DOSBox, y en la pc de tu hermano no tenemos ninguna de las dos cosas.
Podemos instalar DOSBox, copiar la carpeta de Doom, montarla y jugar. O también podemos ejecutar directamente DOSBox remotamente y montar el juego que ya tenemos en nuestro equipo:


$ ssh -X -p 4884 pepino@192.168.1.4 dosbox



Ahora tan sólo resta montar la carpeta como ya mostré. Podes introducir la ruta de tu PC

Cambiar el mensaje de bienvenida
Para hacerlo es simple. Tienes que editar (con privilegios de administrador) el archivo /var/run/motd y escribir dentro lo que quieras que aparezca cuando alguien se conecte:

Cita :
$ sudo gedit /var/run/motd


Lo modificamos a nuestro gusto, guardamos y cerramos gedit.

Programas, publicado 24 Julio 2009, comentarios 0, vistas 1140

informacion No estas registrado todavia en nuestro club? Registrate! No pierdes nada!
Que ventajas tiene de ser usuario regitrado?

El ser usuario registrado, te permite participar en nuestra web, ya sea dejando comentarios, escribiendo noticias, poder leer el contenido de areas solo para usuarios registrados, y mucho mas. En caso de experimentar problemas al registrarte, enviale un mensaje al administrador .


 Información
Usuarios que estan en este grupo no pueden dejar comentarios en la página