SSH es un protocolo y programa que permite el acceso remoto seguro a otras máquinas a través de una red, así como la transferencia cifrada de archivos. Permite ejecutar comandos de forma remota como si se estuviera en la máquina remota. Se instala el cliente SSH en la máquina local y el servidor SSH en la máquina remota para establecer la conexión de forma segura.
Presentación guía sencilla en Microsoft Excel.pptx
Servidor ssh oscar cortez
1. Oscar Martin Cortez Martinez SSH
SSH (Secure SHell ó intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo
implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por
completo la computadora mediante un intérprete de comandos.
Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros
sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a
las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante
SSH.
SSH funciona de forma similar a como se hace con telnet. La diferencia principal es que SSH usa
técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de
manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña de la conexión ni
lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de
ataques de REPLAY y manipular así la información entre destinos.
En resumen, permite ejecutar comandos del shell de un equipo remoto desde otro como si estuviésemos
sentados en el equipo remoto.
Resumiendolo aun mas, SSH es un protocolo utilizado para control remoto de otros equipos de la red y
para transferencia cifrada de ficheros.
Instalaremos en un equipo local (CASA) y en el PC externo o servidor (REMOTO) los dos paquetes
siguientes:
• sshd (the secure shell daemon) (El demonio que escucha las peticiones)
• openssh-client (El cliente que realiza las peticiones)
En este ejemplo trataremos la comunicación bidireccional; si solo quieres subir archivos al PC
REMOTO, no te haría falta instalar sshd en el PC CASA. Instalamos pues en los 2 equipos con:
Instalación
sudo apt-get install openssh-server openssh-client
Si la instalación de OpenSSH ha sido correcta se habrá iniciado el servicio sshd, para ver su estado
podemos ejecutar el siguiente comando:
sudo /etc/init.d/ssh status
Si está iniciado mostrará: sshd us running
Si está detenido podemos iniciarlo ejecutando:
sudo /etc/init.d/ssh start
Devolverá un mensaje como este: Starting OpenBSD Secure Shell server sshd [OK]
Twitter => @oscar_mcm Blog => http://vios-up.blogspot.com 20/Nov/12
2. Oscar Martin Cortez Martinez SSH
Configurando SSH
Para dar acceso a los usuarios que deseemos mediante SSH, editaremos el fichero sshd_config,
ubicado en /etc/ssh/. Para ello editaremos el fichero con vi ó con nano, ejecutaremos el comando:
sudo nano /etc/ssh/sshd_config
Añadiremos la siguiente línea para permitir el acceso mediante SSH al usuario "alonso":
AllowUsers oscarin
Si queremos permitir el acceso mediante SSH al superusuario root añadiremos la siguiente línea a este
fichero:
PermitRootLogin yes
Aunque esto no es muy recomendable por cuestiones de seguridad.
Para indicar con qué interfaz de red se establecerá la conexión (en el caso de que tengamos varias
interfaces de red con varias IPs en nuestro servidor de Linux Ubuntu) añadiremos la línea:
ListenAddress 192.168.1.254
También podremos cambiar el puerto por defecto para SSH (es recomendable por seguridad), que es el
22, añadiendo (o modificando si existe) la línea:
Port 2222
Donde "2222" será el número del nuevo puerto que utilizará SSH. (Luego abrá que
acordarse de este cambio para todas las aplicaciones que usen el servicio)
Para que se apliquen los cambios reiniciaremos el servicio de SSH con el comando:
sudo /etc/init.d/ssh restart
Transferencia de ficheros mediante FTP con FileZilla Client y SSH
Utilizando FileZilla Client, un software gratuito y open source disponible en:
http://filezilla-project.org/download.php?type=client
Podremos acceder mediante FTP de forma segura utilizando SSH a nuestro equipo con GNU Linux y
OpenSSH desde cualquier otro equipo Linux, Windows o Mac OS.
Descargaremos e instalaremos FileZilla Client y pulsaremos en "Archivo" - "Gestor de sitios...",
pulsaremos en "Nuevo sitio" e introduciremos los siguientes datos:
Twitter => @oscar_mcm Blog => http://vios-up.blogspot.com 20/Nov/12
3. Oscar Martin Cortez Martinez SSH
• Servidor: IP del equipo con GNU Linux Ubuntu y OpenSSH, en nuestro caso 192.168.1.112.
• Puerto: puerto que hayamos configurado para SSH (por defecto 22), en nuestro caso 2222.
• Tipo de servidor: seleccionaremos "SFTP - SSH File Transfer Protocol".
• Modo de acceso: Normal.
• Usuario: usuario con permisos suficientes del equipo GNU Linux, en nuestro caso "root".
• Contraseña: contraseña del usuario anterior.
Pulsaremos "Conectar" en la ventana anterior para acceder mediante FTP a GNU Linux desde
Windows. Si todo es correcto ya tendremos acceso a todas las carpetas del equipo con GNU Linux
a las que tenga permisos el usuario con el que hayamos iniciado sesión. Podremos transferir
ficheros o carpetas de equipo con GNU Linux al equipo con Windows y viceversa:
Twitter => @oscar_mcm Blog => http://vios-up.blogspot.com 20/Nov/12
4. Oscar Martin Cortez Martinez SSH
Twitter => @oscar_mcm Blog => http://vios-up.blogspot.com 20/Nov/12
5. Oscar Martin Cortez Martinez SSH
Si lo queremos hacer con nuestro gadget android usaremos
• Sin costo alguno
• Funciona a partir de Android 1.5
• Facil de configurar y una interfaz bastante intuitiva.
Generando las claves
En una terminal de PC CASA, teclearemos:
sudo ssh-keygen -t rsa
Nos pedirá que le pongamos una clave (lo más sencillo, no poner ninguna, pero es más seguro poner
una verdadera frase de paso). La llave pública se generará en /root/.ssh/id_rsa.pub. Esta llave, deberá
de transmitirse o copiarse a PC REMOTO mediante el siguiente comando, por ejemplo: (Con los
permisos apropiados tambien vale el método pendrive, si no puedes conectar con el equipo remoto);
sudo scp /root/.ssh/id_rsa PC REMOTO:/tmp
Ahora agregamos al PC REMOTO como equipo conocido para PC CASA mediante el siguiente
comando en PC CASA:
cat /tmp/id_rsa.pub /root/.ssh/authorized_keys
Si no estamos usando el usuario root, cambiaremos en lo anterior "root" por nuestro "nombre de
usuario".
Si todo esta correcto, ya no se preguntará mas por la contraseña o frase de paso, ya que PC REMOTO
tiene "copia de la llave" que abre el servicio entre los dos equipos. Tan solo nos pediría la contraseña
del usuario de PC REMOTO.
Twitter => @oscar_mcm Blog => http://vios-up.blogspot.com 20/Nov/12