OpenSSH Server

De MediaWiki
Revisión del 19:40 10 feb 2026 de Joselv (discusión | contribuciones) (Página creada con « = Escenario = O principal obxectivo deste escenario é revisar e familiarizarse co funcionamento dun sistema SSH, tanto na parte servidor como no cliente. Instalaremos o…»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

Escenario

O principal obxectivo deste escenario é revisar e familiarizarse co funcionamento dun sistema SSH, tanto na parte servidor como no cliente. Instalaremos o servidor openssh-server nunha máquina Ubuntu Server e faremos probas de conexión dende clientes ssh para probar os mecanismos de autenticación do server grazas ó uso da súa clave pública. Ademáis, este escenario supón o comezo do estudo e revisión dos arquivos de configuración máis importantes tanto da parte servidor como da cliente, así como dos principais comandos ssh.

Escenario

Ó longo do escenario realizaremos as seguintes accións:

  • Actualizar a listaxe de paquetes no equipo correndo Ubuntu Server e instalar a última versión de openssh-server.
  • Unha vez rematada a instalación, verificar que o servidor ssh está escoitando peticións no porto por defecto.
  • Facer un listado dos arquivos de configuración do servidor ssh e localizar as claves públicas e privadas dos distintos algoritmos criptográficos.
  • Explicar a misión do arquivo arquivo known_hosts.
  • Conectarse dende o cliente Linux, verificando que se pide aceptar a clave pública e que unha vez aceptada, aparecerá no arquivo known_hosts do usuario.
  • Conectarse novamente dende o cliente Linux, verificando que esta vez non se solicita aceptar a clave pública.
  • Rexenerar as claves privada-pública que usa o servidor openssh-server.
  • Comprobar que sucede cando o cliente detecta un erro na autenticación do server e como xestionar esta situación.

Configuración do server

Contedores LXC

NOTA: para este escenario é posible empregar o contedor admin2 dos escenarios anteriores directamente, tendo en conta que ten configurada a IP.2 en vez da .11. Poño as instruccións para preparar o escenario de xeito manual por dúas razóns: a primeira porque é interesante que o alumnado faga todo o proceso se nunca traballou a instalación e configuración de ssh e a segunda para que comparedes, o que é unha configuración a man fronte os despregamentos automatizado dos escenarios anteriores.

Con Ubuntu 22.04 Para montar o equipo Server do Escenario 4C nun contedor LXC teremos en conta os seguintes puntos:

Imaxe a usar Linux Ubuntu 22.04. Perfil da máquina: lan

O contedor estará directamente conectado á rede lan xestionada por LXC/incus.

Ten conexión co anfitrión e cos demais contedores conectados a esa rede.

Sairá a Internet a través da interface lan que exerce de switch-router-nat.

Non é directamente accesible dende fóra do equipo anfitrión.

Con este perfil podemos facer que todo o alumnado simule unha rede local coas mesmas IPs e poida facer a práctica seguindo as mesmas indicacións. A rede lan e o perfil lan xa foron creados en temas anteriores:

$ incus launch images:ubuntu/jammy/cloud  server-ssh -p LAN
Launching server-ssh
$ incus ls -c n,4,s,P,S,l
+------------+-----------------------+---------+-------------+-----------+----------------------+
|    NAME    |         IPV4          |  STATE  |  PROFILES   | SNAPSHOTS |     LAST USED AT     |
+------------+-----------------------+---------+-------------+-----------+----------------------+
| admin2     |                       | STOPPED | LAN         | 0         | 2026/01/31 09:13 CET |
+------------+-----------------------+---------+-------------+-----------+----------------------+
| fw         |                       | STOPPED | WAN-LAN-DMZ | 0         | 2026/01/31 11:59 CET |
+------------+-----------------------+---------+-------------+-----------+----------------------+
| server     |                       | STOPPED | DMZ         | 0         | 2026/01/31 09:13 CET |
+------------+-----------------------+---------+-------------+-----------+----------------------+
| server-ssh | 192.168.100.29 (eth0) | RUNNING | LAN         | 0         | 2026/01/31 12:06 CET |
+------------+-----------------------+---------+-------------+-----------+----------------------+

Configuración de rede do contedor: A IP que ten o contedor neste momento é por dhcp e procederemos a configurala de forma estática. Ó estar na rede lan o server debera ter unha configuración válida para a esa rede; e no exemplo, a configuración escollida é: Interface de rede: eth0 IP do server: 192.168.100.11/255.255.255.0 Default gateway: 192.168.100.1 (IP asignada á interface lan creada con lxc network en escenarios do tema Contedores LXC/LXD) Servidores DNS: 8.8.8.8 e 8.8.4.4

Para configurar o server hai que editar o arquivo /etc/network/interfaces.

$ incus shell server-ssh
# nano /etc/netplan/50-cloud-init.yaml
network:
    version: 2
    ethernets:
        eth0:
            addresses:
            - 192.168.100.11/24
            nameservers:
                addresses:
                - 8.8.8.8
                - 8.8.4.4
                search: []
            routes:
            - to: default
              via: 192.168.100.1
# netplan apply
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:8a:15:74 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.100.11/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe8a:1574/64 scope link 
       valid_lft forever preferred_lft forever
# ip route
default via 192.168.100.1 dev eth0 proto static 
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.10

Instalación de opensss server:

# apt update
# apt install openssh-server

Permitir as conexións haberá que poñer a directiva PasswordAuthentication a yes:

# nano /etc/ssh/sshd_config 
...
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
...
# systemctl restart sshd.service 
# ss -lntp
State                 Recv-Q                Send-Q                               Local Address:Port                                Peer Address:Port                Process                                                   
LISTEN                0                     128                                        0.0.0.0:22                                       0.0.0.0:*                    users:(("sshd",pid=1053,fd=3))                           
LISTEN                0                     4096                                 127.0.0.53%lo:53                                       0.0.0.0:*                    users:(("systemd-resolve",pid=303,fd=13))                
LISTEN                 0                      128                                             [::]:22                                            [::]:*                    users:(("sshd",pid=1053,fd=4))   

Asignar un contrasinal ó usuario ubuntu que ven na imaxe:

# passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Nos contedores LXC/incus o usuario root ven activado e podemos usalo para executar os comandos ou usar o usuario administrador ubuntu elevando privilexios con sudo (nos apuntamentos normalmente aparecerán desta última forma).

En Virtualbox

No caso de empregar Virtualbox para realizar o escenario 4C, o server corre nunha máquina virtual coas seguintes características:

  • Sistema Operativo Ubuntu Server 22.04.
  • Memoria RAM: a partir de 512 MBytes
  • Rede: un único adaptador de rede configurado en modo ponte (bridge). IMPORTANTE: debe ter unha configuración de rede válida para a rede da túa casa/centro.
  • Configurar a rede en modo estático seguindo as indicacións dadas no apartado anterior, tendo especial coidado no nome da interface que pode non ser eth0.

Para instalar o servidor openssh e verificar que o servizo está levantado execútanse os seguintes comandos:

$ sudo apt update
$ sudo apt install openssh-server
$ sudo ss -ltnp
State                 Recv-Q                Send-Q                               Local Address:Port                                Peer Address:Port                Process                                                   
LISTEN                0                     128                                        0.0.0.0:22                                       0.0.0.0:*                    users:(("sshd",pid=1053,fd=3))                           
LISTEN                0                     4096                                 127.0.0.53%lo:53                                       0.0.0.0:*                    users:(("systemd-resolve",pid=303,fd=13))                
LISTEN                0                      128                                          [::]:22                                          [::]:*                    users:(("sshd",pid=1053,fd=4))