Servidor SSH en Debian Wheezy

Vamos a ver como instalar y configurar el servidor SSH en Debian, acceder desde los clientes, usar el comando scp y usar el protocolo sftp.

Instalación del servidor SSH

Vamos a realizar la instalación del servidor SSH en la distribución de Linux Debian 7 Wheezy:

aptitude install openssh-server

Configuración básica de OpenSSH

El servidor SSH tiene la ip 192.168.0.77
servidor ssh en debian 0

Opciones a tener en cuenta en /etc/ssh/sshd_config
“Port” podemos dejar el puerto 22 por defecto o cambiarlo al puerto que queramos
“UsePrivilegeSeparation” debemos tenerlo a yes
“PermitRootLogin” si queremos tener superpoderes sobre el sistema de forma remota debemos tenerlo a yes.
Las opciones X11 puestas a yes queremos permitir la ejecución de aplicaciones graficas, escritorios remotos, etc.

servidor ssh en debian 1

Si queremos permitir la ejecución de aplicaciones gráficas ponemos a yes estas opciones en /etc/ssh/ssh_config

servidor ssh en debian 2

Podemos bloquear conexiones por ssh a nuestro servidor modificando el fichero /etc/hosts.deny una buena practica es bloquear todas las direcciones ip y permitir solo lo equipos que queramos que se conecten que necesitemos en /etc/hosts.allow.

Modificamos el fichero /etc/hosts.deny

sshd: ALL@ALL

Le decimos que bloquee a todos los usuarios de todas las IPs

servidor ssh en debian 3

Permitimos solo las ip de los clientes que puedan que conectarse al servidor.
servidor ssh en debian 4

Cuando acabamos de configurar el servidor ssh reiniciamos el servicio.

/etc/init.d/ssh restart

Instalación del cliente SSH en Debian Squeeze

Para poder administrar el servidor de forma remota tenemos que instalar el cliente SSH ya sea en Linux o en Windows.
Tenemos varios clientes SSH para Linux (openssh-client, putty, private shell, zoc-ssh, etc).
En Windows hay alguno menos (putty, Movas, zoc terminal, etc)

En este caso instalamos openssh client en Debian Squeeze

aptitude install openssh-client 

Conexión al servidor con SSH desde la consola

Para conectarnos al servidor desde cualquier Linux (incluso desde Mac OS X que lo suele llevar instalado por defecto ya que al estar basado en UNIX es lo mismo) y tener acceso total al sistema con el shell, para administrarlo o para hacer cualquier cuestión tenemos que usar el siguiente comando

ssh nombre_de_usuario_del_servidor@ip_del_servidor

Si cambiamos el puerto por el que escucha el servidor ssh al conectarnos debemos indicarlo con la opción -p

ssh -p NºPuerto nombre_usuario@ip_servidor

Vamos a conectarnos a nuestro servidor
servidor ssh en debian 5

ssh usuario@192.168.0.77

Si tenemos la opción de poder identificarnos como root, podemos entrar como tal
servidor ssh en debian 6

Podemos por ejemplo crear una carpeta en el escritorio del servidor.
servidor ssh en debian 7
Y se crea en el servidor sin problema.
servidor ssh en debian 8

Una vez que acabamos de administrar el servidor de forma remota (los comandos son los mismos que si estuviéramos delante de la terminal del servidor físicamente) cerramos la sesión con exit.
servidor ssh en debian 9

Conexión al servidor SSH desde Windows

Descargamos el cliente ssh putty de su web oficial

Ejecutamos putty.exe, ni siquiera es necesaria la instalación, se nos abre esta ventana en la que pondremos en Host Name el servidor al que vamos a conectarnos el protocolo que vamos a usar en este caso SSH y el puerto por el que el servidor esta escuchando.
Putty nos permite guardar la configuración de las sesiones de los diferentes equipos que tengamos que administrar de esta forma podemos tener muchos equipos añadidos a putty y con un click acceder a la consola.
servidor ssh en debian 10

Cuando le demos a Open entraremos en la consola y tendremos el control total del servidor de forma remota desde Windows.
servidor ssh en debian 11

Comando SCP (Secure Copy)

El comando SCP sirve para copiar ficheros via SSH del servidor al cliente y viceversa.

Copiar del servidor al cliente (el usuario a veces es opcional si el nombre del usuario del servidor ssh es el mismo con el que estamos ejecutando la copia en maquina local, por eso puede omitirse):

scp usuario@ip_servidor:ficheros /capeta_destino_cliente

servidor ssh en debian 12

Copiar del cliente al servidor

scp /ficheros_del_cliente usuario@ip_servidor:/carpeta_destino_servidor

servidor ssh en debian 13
En ambos casos se copian los ficheros sin problemas.

El comando SCP tiene algunas opciones que pueden ser interesantes:
-p: Preserva permisos, así como tiempos de modificación y acceso.
-q: No muestra la barra de progreso.
-r: Copia recursiva, es decir que copia los sud directorios.
-v: Muestra los mensajes para debugging.

Para usar SCP en Windows debemos descargarnos Putty SCP desde su web http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Una vez descargado accedemos desde la consola, a donde tengamos el ejecutable pscp.exe y el comando funciona igual que en Linux solamente que añadiendo una p delante de scp

servidor ssh en debian 14

SFTP Secure Transfer Protocol

SSH nos permite el uso de SFTP que básicamente es el servicio FTP de transferencia de ficheros pero cifrado, por tanto es seguro.
Enjaular usuarios SFTP
Por defecto SFTP comparte TODA la raíz del sistema, da un control total estar basado en SSH, para enjaular a los usuarios en un directorio concreto tenemos que hacer lo siguiente:
Editamos el archivo /etc/ssh/sshd_config
Comentamos la linea

#Subsystem sftp /usr/lib/openssh/sftp-server

Agregamos las siguientes lineas

Subsystem sftp internal-sftp
Match user USUARIO
ChrootDirectory /directorio
ForceCommand internal-sftp

En mi caso dejaré toda la raiz, sin enjaular a ningún usuario.

Acceder al servidor SFTP desde Linux
Podemos usar un cliente FTP, como Filezilla que lo veremos en Windows.
Podemos acceder desde el menú Lugares > Conectar con el servidor
servidor ssh en debian 15
servidor ssh en debian 16

Nos da acceso toda la raíz del sistema para copiar, borrar y subir ficheros, según los permisos que tenga el usuario con el que hemos entrado.

servidor ssh en debian 17

También podemos acceder vía consola con el comando sftp que es prácticamente igual que el de ftp.
servidor ssh en debian 18

Acceder al servidor SFTP desde Windows
En Windows podemos usar Filezilla u otro cliente FTP para acceder.
En servidor ponemos sftp://192.168.0.77, ponemos el nombre de usuario, la contraseña y el puerto 22 de SSH.
Podremos descargar, subir o borrar lo que queramos, donde el usuario que tenga permiso.
En la parte inferior de la ventana nos indica con un candado que esta conexión está cifrada.

servidor ssh en debian 19

También podemos usar el comando psftp en Windows descargando desde la web de Putty.
servidor ssh en debian 20

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post