Está en la página 1de 42

SERVIDOR SSH

Introducción a SSH en entornos Linux

Luis Pilo Aceituno


28/04/2020
2.º CURSO, CICLOS FORMATIVOS INFORMÁTICA
INTRODUCCIÓN

1. Características principales
2. Criptografía asimétrica
3. Métodos de autenticación
4. Funcionamiento de SSH

1.Características principales.

SSH se basa a aplicaciones anteriores como Telnet. Telnet permite abrir una Shell de forma
remota y conectarnos al equipo y su manejo desde la línea de comandos.

El principal inconveniente de estas aplicaciones era la seguridad dado que la información no se


cifraba. Tampoco se cifraba la autenticación. Cualquier equipo que pudiera ‘husmear’ el tráfico tendría
las credenciales para entrar en el equipo remoto.

Por estas razones estas utilidades solo se empleaban en entornos seguros. La solución que se
implementó fue:

● El cifrado de la autenticación
● El cifrado de la conexión.

Cuando hablamos en este curso de SSH nos referimos a la implementación conocida como
OPENSSH.

Algunas de sus características son.

● Desarrollado por OpenBSD.


● Escrito en C
● Licencia de dominio público
● Utilizada en BSD, GNU/Linux y UNIX

Los componentes de OpenSSH, que se irán viendo durante el curso son:

● ssh
● scp
● sftp
● ssh-keygen
● ssh-agent
● sshd
● ssh-keyscan

1
Hay dos versiones de SSH. SSH-1 y SSH-2. SSH-2 es incompatible con SSH-1 Actualmente solo
se usa la versión 2.

Una mejora importante de SSH2 es que permite tener varias sesiones en la misma conexión.

2.Criptografía asimétrica.

Podemos definir la criptografía como la técnica de escribir con claves secretas de forma que lo
escrito sólo sea inteligible para quien sepa descifrarlo.

● CRIPTOGRAFÍA DE CLAVE SIMÉTRICA.


○ Se utiliza la misma clave para cifrar y descifrar
○ Los algoritmos usados son
■ DES
■ 3DES
■ IDEA
■ AES
■ Otros

Hoy en día el más empleado es AES. La principal limitación de la criptografía de clave simétrica
es la comunicación de la clave. Si mandamos la clave de cifrado por un canal inseguro como es internet
alguien podría capturarla y acceder a nuestra información.

Para solucionar este problema surge la clave asimétrica.

● CRIPTOGRAFÍA DE CLAVE ASIMÉTRICA


○ Es conocida como de clave pública
○ Se crean dos claves relacionadas: clave privada y clave pública
○ La clave privada descifra lo cifrado por la pública y al contrario
○ Es más complejo y se dispone de menos algoritmos.

La idea es que si cifro algo con mi clave privada quien disponga de la clave pública asociada
podrá descifrarlo y al contrario: si se cifra algo con mi clave pública sólo yo que tengo la privada podría
descifrarlo.

Si alguien me quiere enviar un mensaje usaría mi clave pública para cifrar, me lo enviara por internet y
con mi clave privada podría descifrarlo

2
También permite garantizar la autenticidad. Cuando alguien me mande un mensaje si puedo descifrarlo
con su clave pública tengo certeza que esa persona lo ha enviado.

Algunos algoritmos de clave asimétrica son:

● RSA
● DSA
● ECDSA

FUNCIONES DE HASH

Cuando le aplico una función HASH a un texto produce siempre una cadena de texto del mismo tamaño.
Además a partir del HASH nunca puedo saber cuál es el contenido. Es un mecanismo de cifrado que no
permite descifrar

Su utilidad para que alguien reproduzca el proceso y pueda comprobar, por ejemplo, la integridad de un
mensaje.

Un algoritmo de HASH muy conocido es MD5 pero hoy se le considera no seguro. Hoy usamos SHA-
256 y SHA-512

3. Métodos de autenticación.

Los principales métodos de autenticación son:

1. CONTRASEÑA
2. CLAVE PÚBLICA. Es otro mecanismo de autenticación en SSH más natural y eficiente.
Consiste en lo siguiente
a. El usuario genera un par de claves pública/privada
b. Ubica la clave pública en el equipo remoto
c. Accede a su sesión sin contraseña. Dado que SSH tiene un mecanismo para saber que soy
el propietario de esa clave pública me permitirá acceder sin tener que emplear ninguna

3
contraseña.
3. KERBEROS. Necesitamos un servidor KERBEROS configurado. Se utiliza en entornos
corporativos. En la autenticación por KERBEROS lo que hace SSH es confiar en KERBEROS.

4. Funcionamiento de SSH.

El proceso de conexión de SSH consta de dos fases.

FASE 1.Negociación

● El cliente se conecta al servidor


● El servidor muestra su versión de ssh
● El cliente muestra su versión de ssh
● El servidor envía su clave pública
● El cliente verifica la huella de la clave pública entre las que tiene guardadas
● Negocian qué algoritmo y semilla utilizar
● Ambos generan las claves de sesión e intercambia la pública para verificar que la otra parte lo ha
hecho igual.

Cuando los dos generan la misma clave de sesión y la comparte y ven que es la misma a partir de ese
momento comienza la conexión.

FASE 2.Autenticación

● Una vez establecida la clave de sesión se utiliza para cifrar toda la comunicación
● El servidor ofrece los métodos de autenticación disponibles
● El cliente selecciona el que desea utilizar
● Cuando el usuario se ha autenticado se abre una sesión en el equipo remoto.

INSTALACIÓN DEL ENTORNO DE PRUEBAS

4
Prepararemos una red virtual con un mínimo de dos máquinas con Linux. Emplearemos Ubuntu o alguna
distribución Debian.

Frecuentemente viene el servidor ssh instalado por defecto. No obstante supondremos que no está
instalado. Para instalarlo en una máquina Ubuntu escribimos los comandos

1. Actualizamos el sistema

2. Instalamos el servidor OPENSSH y sus dependencias

Como hemos comentado es muy posible que la aplicación ya se encontrase instalada como parte del
paquete de instalación de Ubuntu

3. Instalamos el cliente SSH

A continuación pasaremos a configurarlo

NOTA: Esta práctica se está haciendo con la versión 12.04. Recuerda que para saber qué versión utilizas
empleamos el comando

Para verificar el estado del servidor podemos hacemos

Con la versión 18 de Ubuntu puedo comprobar que se está ejecutando el servicio mediante el comando
(de forma similar a como se hace en Debian)

5
También los puedo comprobar con el comando ps (recorda que el nombre del demonio es sshd

Una vez comprobado que está instalado el servidor ssh me puedo conectar desde otro equipo.

IMPORTANTE.

Con Ubuntu 12 y versiones inferiores el comando para ver los parámetros TCP/IP es ifconfig -a peor con
la versión 18 es ip al (igual que en Debian).

ACTIVIDAD 1

Debes crear una topología sencilla que emplearemos para seguir el resto del curso.

Usaremos VirtualBox para crear una red interna que consta de dos máquinas. La primera de ellas tendrá
instalada el sistema operativo Ubuntu 18 y la segunda una distribución Debian o Ubuntu. La
configuración es la siguiente

● Ambas máquinas se configuran en modo Red Interna. El nombre de la red es SSHXX , donde XX
son los dos últimos dígitos del presente año académico (ejemplo en el momento de confeccionar
este curso nos encontramos en el curso 1920 por tanto la red se denominará SSH20)
● La primera máquina debe tener la siguiente configuración TCP/IP
○ Dirección ip : 192.168.6.1
○ Mascara : 255.255.255.0
○ Dirección de red:192.168.6.0
● La segunda máquina tendrá los parámetros
○ Dirección ip: 192.168.6.10
○ Mascara: 255.255.255.0
○ Dirección de red:192.168.6.0
● Debes realizar las siguientes tareas

6
○ Instalar en ambas máquinas el cliente y el servidor ssh
○ Comprobar el estado del servidor y en caso de estar apagado encenderlo.
○ Comprobar que se ejecuta el demonio sshd
● Anotar la ip de cada máquina y el nombre del usuario con que queremos conectarnos. Debe ser un
usuario dado de alta en dicha máquina.

UTILIZACIÓN DE SSH

1. Autenticación con usuario y contraseña


2. Autenticación con claves publica/privada
3. Autenticación con claves públicas/privada y fase de paso
4. SSH-Agent
5. Gestión de ficheros: authorized_keys y known_hosts
6. Forwarding

1.-Autenticación de usuarios y contraseñas.

Para conectarnos a una máquina determinada debemos usar la sintaxis

sssh usuario _en_la_máquina_a_que_conecto@ip_de_la_maqu_a_que_me_conecto

Debes tener presente que el usuario al que te conecta debe existir en la máquina a la cual quieres
conectarte.

Ejemplo: Nos conectaremos desde Ubuntu 18 a Debian Observa que el usuario con que me conecto es
Debian)

PASOS.

1. Decido cual es la máquina desde la que me conecto y a cual me conecto

7
2. Anotar la IP de la máquina destino

3.- Efectuar la conexión

8
¿Qué significa esta pantalla?

● Es la huella de la clave pública del servidor al que me conecto


○ El servidor mv1 tiene una clave privada y con ella genera una clave pública
○ De esa clave pública con una función hash, la que estás viendo, genera una huella
○ Como el sistema no ha podido verificar que esa clave pública es de ese servidor nos
pregunta si confiamos en ella
● Cuando instalemos la clave pública en el cliente esto no será necesario

4. Contestamos que sí (yes)

9
Finalmente he tenido acceso al sistema. Me he conectado desde la máquina Debian a la máquina Ubuntu
18.

Observa como el archivo que hemos creado en una de las máquinas se crea en la otra .

ACTIVIDAD 2.

1.Conectate desde la máquina Debian a la máquina Ubuntu 18

2.Cuando se efectúe la conexión desde la máquina Debian crea un archivo y escribe en él un breve
texto

3..Comprueba que aparece en la máquina Ubuntu 18 y abrelo desde ella

10
No hemos utilizado la clave pública del servidor dado que nos hemos autenticado con contraseña pero
podemos acceder a ella con el comando

Aquí tienes la salida

También podemos usar ssh para conectarnos a un máquina y ejecutar un comando. En este caso no abre
una shell interactiva

Ejemplo. Conectarse a la máquina debian y averiguar qué usuario somos. Usaremos el comando whoami.

11
Se efectúa la conexión y devuelve el resultado (el nombre del usuario con que me conecte) sin abrir
una shell ¡¡¡

ACTIVIDAD 3

Mediante ssh debes conectarte con una de las máquinas a la otra y averiguar su IP. NO debes abrir
una shell interactiva en la máquina servidora.

Si quiero encadenar comandos debo usar apóstrofos y el operador &&. Algunos comandos me obligar a
tomar rol de superusuario por ello debe preceder los de sudo

Al ejecutar algunos comandos puede aparecer el siguiente mensaje de error

tty es la consola que nos permite en Linux acceder a nuestro sistema operativo fuera del entorno
gráfico. Podemos solucionar el problema anterior con la opción ssh -t

ACTIVIDAD 4.

Conectate desde una de las máquinas y haz que se actualicen los repositorios de la otra.

Solución:

12
Observa que pide dos contraseñas

1. La del usuario con que nos conectamos


2. La del root.

IMPORTANTE. La máquina a la que nos conectamos debe tener instalado el comando sudo

1.1.Acceso como root

Intentaremos acceder a la máquina Debian como root. Como la hemos instalado nosotros debemos
conocer su contraseña. Observa que puedes encontrar un error.

La razón es que a veces en el archivo de configuración de ssh (/etc/ssh/sshd_config) hay una


directiva que impide podamos acceder como root. Esto es lo más aconsejable.

Observa el archivo de configuración de mi equipo Ubuntu 18

Observamos que tiene comentada la línea que impide conectarnos como root. Se ha hecho así para poder
realizar las prácticas. En un entorno empresarial no debería estar permitido (debes descomentar la
directiva)

13
2.Autenticación con clave pública/privada

La autenticación con claves públicas y privadas es el mejor método para conectarnos

En la instalación de ssh se generan 4 claves privadas y 4 claves públicas .En la fase de negociación se
intercambia, como hemos comentado antes, una de ellas.

Haremos algo parecido en el cliente. El cliente en principio no tiene clave privada es algo que el de forma
voluntaria genera.

● Generamos en el cliente una clave privada


● Generamos en el cliente una clave pública
● Ponemos la clave pública en nuestra cuenta en el servidor
● Nos conectaremos sin poner contraseña.

1. GENERAR LAS CLAVES PÚBLICAS/PRIVADA

Empleamos el comando

ssh-keygen

Debemos especificarle el algoritmo que queremos emplear. Supongamos que quiera emplear
ecdsa. El comando sería

ssh-keygen -t ecdsa

(Esta operación se hace en el equipo cliente)

Generamos la clave privada sin dar una frase de paso, por ello cuando nos la pida pulsaremos

14
INTRO.

Observa que nos muestra el archivo en que la clave será almacenada

15
Lo que el sistema ha hecho es:

- Decirme que va a generar un par de claves pública /privada para mi


- Indicarme en que archivo las guardará
- Pedirme una frase de paso (en este caso no le he dado ninguna)
- Me informa sobre los archivos en los que ha salvado la clave pública y la privada.
- Me informa de cuál es el fingerprint
- Finalmente me describe la clave

Podemos comprobar que efectivamente en el directorio indicado se encuentra las claves creadas.

16
Observa que la clave privada no tiene permiso de lectura.

ACTIVIDAD 5

Genera una par de claves, comprueba que se encuentra en el directorio que el sistema te ha
indicado y que tiene los permisos adecuados. Muestralas por pantalla (comando cat)

La clave pública debemos copiarla en el equipo remoto para poder conectarnos con ssh sin tener
que usar contraseña.

2. COPIAR LA CONTRASEÑA PÚBLICA EN EL SERVIDOR

Usaremos el comando ssh-copy-id. Con la opción -i especificacamos la ruta de la clave privada y donde
queremos copiarla (indicando la misma cadena que empleamos para conectarnos por ssh- usuario@ip- )

AVISO IMPORTANTE .Debes tener la herramienta ssh-copy-id en tu sistema operativo. Por


defecto viene instalada en Ubuntu18 pero es posible que no en otras versiones. En este caso

17
deberías instalarla antes

observa que si ahora me conecto no me pide la contraseña

ACTIVIDAD 6.

Conectate sin contraseña desde una de las máquinas de nuestra red virtual a otra

ACTIVIDAD 7.

Realiza las siguientes actividades (suponemos que tienes dos máquinas UBUNTU que
denominaremos Cliente y Servidor)

● En el servidor debes crearte un usuario llamado demo con contraseña 123


● Genera en el cliente un par de claves pública/privada, como has visto en este capítulo
● Copiala en el servidor mediante el comando ssh_copy
● Conectarse al equipo servidor con el usuario demo
○ Debes poder hacerlo sin necesidad de introducir la contraseña.

3. GENENAR UN PAR DE CLAVES Y DECIRLE CON QUÉ NOMBRE SE GUARDARÁ


● Generamos un par de claves, en esta ocasión vamos a emplear otra algoritmo
● Decidimos que se guarden con el nombre misClaves
○ Tampoco en este caso usaremos frase de paso

18
● Nos desplazamos al directorio ssh

19
Como ves tenemos salvada nuestra clave en el archivo que hemos decidido

Ahora puedo copiar esa nieva clave. Observa que debo pasarle el nombre y la ruta pero que no me pide la
contraseña al conectarme porque ya publica un par de claves en los pasos anteriores.

(NOTA PERSONAL: NO ME DEJA CONECTARME CON LA NUEVA CLAVE HACIENDO

20
DEBE BUSCARSE LA SOLUCIÓN)

4. GENERAR UNA CLAVE PÚBLICA A PARTIR DE LA PRIVADA

Hemos comentado que el comando ssh-keygen genera un par de claves pública/privada pero puede que en
alguna ocasión no dispongamos la clave pública podemos generarla con el mismo comando y las
opciones apropiadas

En el ejemplo hemos supuesto que no tenemos la clave pública de ASIR1

1. Nos desplazamos al directorio .ssh/ donde están las claves

2.

3. Generamos la clave con el comando ssh-keygen

Comprueba que ha sido generada

21
Observa que te añade como comentario el nombre del usuario

ACTIVIDAD 8

Debes preparar dos máquinas una llamada cliente y la otra servidora, deben tener instalados el
software ssh. Realiza las siguientes tareas

1. El cliente se conecta al servidor con el usuario de nombre dummy


a. Para ello usa su clave
2. Genera un par de claves público/privada, No le cambies el nombre
3. Copialas en el servidor.
4. Conectarse al servidor con el mismo usuario. Comprueba que no te pide la clave
5. Genera una nueva clave y llamarla KK
6. Copiala en el servidor
7. Supongamos que no disponemos de la clave pública asociada a la clave privada KK.
Generarla.
8. Sería posible el proceso contrario, esto es: a partir de la clave pública generar la privada.

Por cada uno de estos apartados haz de generar una captura y entregarla en los plazos y forma que
fije tu docente.

22
3.-Autenticación con clave pública/privada y frase de paso

El método anterior tiene el inconveniente que si alguien tiene acceso a mi clave privada puede
identificarse en el servidor suplantandome

● Genero una clave y le dejo el nombre estándar

● La frase de paso es una contraseña que protege la clave privada. Le asignaremos como frase de
paso 12345678 (es evidente que en un entorno real no sería una buena idea)

23
Ahora cada vez que quiera usar la clave privada deberá suministrar la contraseña. Con esto tengo un
sistema más seguro.

● Copiarla en el servidor

Ahora me pedirá la palabra de paso para poder conectarme.

Tiene la ventaja de tener doble seguridad pero es más incómodo por tener que teclear la frase de paso.

Mediante el uso de SSH-AGENT tendremos las ventaja de la doble seguridad pero sin las molestias de

24
introducir la frase de paso.

4.ssh-Agent

ssh-agent es un programa que permite almacenar las claves privadas de una sesión y es útil cuando
usamos claves con frase de paso, dado que podemos añadir la clave privada al agente ssh y solo
tendremos que poner la frase de paso una vez.

Las claves privadas suelen almacenarse durante un tiempo, normalmente la duración de una sesión.

Cuando use una clave privada sin frase de paso ssh-agent la incorpora y si utilizo una clave con palabra
de paso el usuario la incorpora escribiendo en ese momento.

Esto permite establecer conexiones con clave privada con o sin frase de paso de manera muy
comoda porque la frase de paso solo debe escribirse una vez.

SSH- Agent suele ejecutarse de forma automática en las sesiones gráficas de los sistemas . Podemos
comprobar su presencia en nuestro sistema con el comando

env |grep SSH

● env permite ver las variables de entorno

25
También puedo buscar el proceso con

ps aux |grp ssh-agent

Se abre un proceso de ssh relacionado con mi gestor de sesiones de entornos gráficos (gnome).

Dado que es te proceso está funcionando en mi máquina, en segundo plano, cada vez que quiera agregar
una clave privada con frase de paso puedo hacerlo.

AGREGAR CLAVE PRIVADA CON FRASE DE PASO.

1. Generó un par de claves, en este caso usaremos otro algoritmo aunque podríamos usar cualquiera
de los anteriores.
a. Dejaré la ubicación estándar

b. Estableceré una frase de paso (usa 12345678)

26
2. Añadir la frase de paso a ssh-agent
● Recuerda que la publicación de las claves es ~/.ssh
● Para añadirla uso el comando

● Me pide la frase de paso (recuerda que si has seguido mi consejo será 12345678)

● Me informa que ha añadido la entidad

● Comprobamos que efectivamente ha sido añadida con el comando

27
3. CONECTARSE A UN SERVIDOR QUE USE ESTA CLAVE
● La copió en el servidor

● Hago una conexión via ssh con el servidor

● Me pide en esta sesión POR PRIMERA VEZ la frase de paso

28
Cuando vuelva a entrar ya no me la pedirá.

ACTIVIDAD 9.

Usando dos máquinas linux con ssh instalado realiza las siguientes tareas.

1. EN EL CLIENTE Y EL SERVIDOR
a. Comprueba que está instalado y actuando en segundo plano el procesos ssh-agent
2. EN EL CLIENTE
a. Crea un par de claves con tu algoritmo preferido. Debes dar una frase de paso
b. Añade la frase de paso al ssh-agent
c. Conéctate al servidor, como es la primera conexión debe pedirte la frase de paso
d. Cierra la conexión y conectar de nuevo. ¿Qué diferencia encuentras entre esta y la
conexión anterior?

CARGAR SSH-AGENT

Si se da la circunstancia que mi máquina no tiene el proceso ssh-agent (por ejemplo si es un servidor sin
terminal gráfico) puedo cargarlo con el comando

29
Ya puedes seguir con el resto de pasos , como añadir la frase de paso (comando add) y efectuar las
conexiones.

BORRAR LAS CLAVES PÚBLICA UTILIZADAS CON SSH-AGENT

Uso el comando ssh-add -D

5.Gestión de ficheros:authorized_keys y known_hosts

● Fichero ~/.ssh/authorized_keys

Almacena las claves públicas de los usuarios que pueden acceder a esta cuenta mediante la clave
pública/privada

Accedemos al fichero ssh y listamos su contenido. Encontramos los siguientes ficheros.

Como hemos comentado el archivo authorized_keys contiene las claves públicas que tiene permiso para
identificarte como este usuario. Observemos su contenido

30
observa que son varias las claves que aparecen dado que durante los ejemplos se han creado varias claves.

Si en algún momento dejó de usar una clave editar este fichero y la borro.

Fichero ~/.ssh/known_hosts

Se almacenan las claves públicas de todos los equipos remotos a los que nos hemos conectado y que
hemos aceptado

31
Los ideal sería que la primera vez que fuera a conectarse a un servidor remoto su administrador
me diera la clave pública por algún canal seguro y yo la guardaría en el fichero known_hosts.

En este archivo se muestra el hash de la ip del equipo remoto al que me conecto y la clave pública del
servidor

● Si quiero saber si hay alguna entrada en el fichero para una ip determinada uso el comando

ssh-keygen -F ip

ADVERTENCIA.

Si se desinstala el servidor ssh con la opción --purge y después de vuelve a instalar las claves han
cambiado. Nos advertirá durante la conexión con un mensaje similar a este

● Para borrar una entrada determinada usamos la sintaxis

32
Es evidente que pondrás la ip que tu desees borrar

Por si cambio de opinión me la copia en un fichero de respaldo llamado known_hosts.old

CONFIGURACIÓN DE SSH

1. Configuración del cliente SSH


2. Configuración del servidor SSH

1.Configuración del cliente SSH

● Debemos acceder como superusuario

● Editamos el fichero /etc/ssh/sshd_conf

33
Muchos de los parámetros están comentados. En un principio las únicas opciones que están
disponibles son

● SendEnv LANG LC*


● HashKnownHosts yes
● GSSAPIAuthentication yes

SendEnv son las variables de entorno que en un principio quiero que se manden del cliente a la máquina
remota.

1. LANG : Me da la localización del idioma.

El español con codificación de caracteres UTF-8. Si me conecto al servidor y repito el mismo comando
me dará la misma localización del idioma dado que esa variable de entorno es enviada de cliente a
servidor

● La utilidad de esto es que si trabajo en mi cliente con un idioma me interesa que al conectarme al
servidor pueda seguir trabajando con el mismo idioma.
2. La opción HashKnownHosts es la que hace que mi fichero Known haga un HASH o no de los
equipos a los que me conecto.

34
La utilidad de esto es que es más claro que pueda ver la ip al visualizar dicho fichero PERO SE
PIERDE SEGURIDAD.

3. GSSAPIAuthentication . Es un mecanismo de autenticación que se emplea en ciertos entornos.


Cuando se emplea la autenticación con clave pública y privada no es necesario que esté
habilitado.
● Otras opciones de interés
○ EscapeChar . Es el carácter que debemos teclear para poder interrumpir la conexión en el
cliente. Por defecto es ~ (AltGr + 4)
○ GlobalKnownHostFile. Crea un fichero global donde se guardaran todas las claves
públicas de los servidores a los que se conectan los usuarios.
○ NumberOfPasswordPromts.Se especifica el número de veces que pedirá la contraseña
cuando hago autenticación por usuario y contraseña.El número por defecto es 3. Si se
define un número en el cliente y otro en el servidor prevalece el menor de ambos.
○ StrictHostKeyCheking ask. Cuando el usuario se conecte a un equipo y el equipo le
devuelva la clave pública si esta no esta en KnownHosts hay tres opciones
● Ser estricto (yes)y se cierra la conexión
● Opción ask. Muestra la huella y me pregunta si me quiero conectar.
● No. Acepta cualquier clave pública.Puede ser útil en un entorno privado
donde tengo seguridad que no puede haber ningún tipo de suplantación.

Algunas de estas opciones pueden no encontrarse pero puedes añadirlas.

Es conveniente que cada usuario configure su propio archivo de configuración de cliente en el


directorio ssh

ACTIVIDAD 10.

Crea tu propio fichero de configuración .Solo te exijo un requisito.

● Que no se haga comprobación de si la clave pública se encuentra

35
2. Configuración del servidor SSH

La configuración se hace con el usuario root y se dispone de un único fichero.

● Entramos como administrador

● Nos desplazamos al directorio /etc/ssh

● Visualizamos el archivo de configuración sshd_config

36
IMPORTANTE: Hay directivas que no están en el fichero de configuración pero que se estan ejecutando
con sus valores por defecto.

● Para ver tanto las directivas que se están ejecutando de forma implícita como las que están en el
archivo de configuración podemos usar el comando.

Algunas directivas de interés , que encontramos en el archivo de configuración, son:

1. Port numero. Específico porque puerto se comunica con el cliente. (Por defecto es el 22 -Port 22
-)
2. PermitRootLogin without-password. Para permitir que se acceda sin contraseña
3. PermitEmptyPasswords no. No permitir contraseñas vacías.
4. Subsystem sftp . Que utilice como subsistema para ftp el servicio sftp
5. Addressfamily. El protocolo de internet que puedo usar . Como alternativas puede usar
a. any =cualquiera
b. inet=ip v4
c. inet6=ip v6
6. ListenAdress ip. si tengo mas de una interfaz y quiero que solo se aceptan peticiones ssh por una
de ellas la especifico aqui

37
Tan solo han sido algunos ejemplos de posibles directivas.

ACTIVIDAD 11.

Busca información en Internet sobre la configuración del servidor ssh y amplia este material.

TRANSFERENCIA DE FICHEROS A TRAVÉS DE SSH

1. Utilización de SCP
2. SFTP

1.UTILIZACIÓN DE SCP.

La sintaxis de scp es similar a la del comando para copiar. (cp).

scp user@hosts1:file1 user@host2:file2

Ejemplo.

38
1. Buscamos en el servidor, máquina a la que me conecto, el fichero que quiero traerme. En el
ejemplo será el fichero PRACTICAS.TXT.
○ Observa que como está en el home solo debo de usar :nomFichero (será una ruta
relativa)
○ De esta en otro sitio debería poner toda la ruta.
○ En el destino basta poenr ‘.’ tan solo.
2. Una vez conectado al servidor uso el comando scp

OBSERVA COMO NO HAY QUE CONECTARSE AL SERVIDOR PARA ‘TRAERSE’ EL


ARCHIVO. Con el comando scp se efectúa la conexión.

3.- Hacer un listado de directorio HOME del cliente. Debemos tener en el el archivo que hemos
traido.

39
También puede hacerse en el sentido contrario. En este caso cambian los equipos origen y destino

ACTIVIDAD 12.

Modifica el archivo que te has traido y mandalo de nuevo a la máquina en que se encontraba.

● Puedo usar, el igual que con el comando cp, usar la opción -r para realizar una copia recursiva.

ACTIVIDAD 12.

Realiza las siguientes actividades en la máquina servidora.

1. Crea la siguiente estructura de directorios.


a. DIR1
i. DIR 2
1. DIR3
2. En DIR 3 crea un archivo de nombre misCosas.txt
3. Copia toda la estructura a la máquina cliente usando la opción de copia recursiva (-r)

2.SFTP

● SFTP no es FTP cifrado sino utilizar transferencia de ficheros al estilo de ftp pero usando un
puerto de ssh, es decir un canal ssh.
● La sintaxis sería

● Desde este prompt tengo acceso a los comandos de ftp

40
SSH DESDE WINDOWS

Uno de los clientes para windows más populares es PuTTY.No ofrece tantas opciones de configuración
como ssh para linux.

También permite configurar claves públicas / privadas y túneles ssh

41

También podría gustarte