Dimecres, febrer 11, 2026
SERVIDORS

Instal·lar i assegurar un servidor SSH per a accés remot

SSH (Secure Shell) és una d’aquestes eines que fas servir gairebé sense pensar una vegada que t’hi acostumes. Però la instal·lació i, sobretot, la configuració correcta d’un servidor SSH no és trivial si el que vols és una cosa que realment funcioni bé a mig i llarg termini. No n’hi ha prou amb instal·lar un paquet i arrencar un servei. Hi ha decisions que afecten directament la teva comoditat diària, la seguretat del teu sistema i la forma en què col·labores amb altres persones o equips.

Aquesta entrada és per als qui volen configurar SSH de forma pràctica, segura i amb criteri, tant si vens d’altres entorns com si ja estàs còmode amb Linux però vols fer les coses millor.

1. Perquè fer servir SSH

SSH no és només per accedir a una màquina remota. És una eina bàsica que fem servir per crear túnels, clonar repositoris, sincronitzar arxius, automatitzar tasques… Tot això depèn que el teu servidor SSH estigui ben muntat.

Un servidor SSH mal configurat no només és insegur: també és molest. Et bloqueja per fallades tontes, t’obliga a treballar amb contrasenyes quan no hauries, o et deixa venut quan necessites accés urgent i alguna cosa falla. El que busquem aquí no és només que funcioni, sinó que funcioni bé i sense donar sorpreses.

2. Instal·lació: comencem bé

En qualsevol sistema basat en Debian o RHEL, instal·lar un servidor SSH és simple:

# Debian/Ubuntu
sudo apt update
sudo apt install openssh-server

# RHEL/CentOS/Fedora
sudo dnf install openssh-server

Després d’instal·lar-lo, assegura’t que el servei està habilitat i corrent:

sudo systemctl enable ssh
sudo systemctl start ssh

En alguns sistemes (com Ubuntu Server), pot venir preinstal·lat. Verifica amb:

sudo systemctl status ssh

Compte: a Fedora i derivats, el servei s’anomena sshd, no ssh, tot i que el binari és el mateix.

3. Accés bàsic: el mínim que necessites saber

Per defecte, pots connectar-te des d’un altre sistema amb:

ssh usuari@ip-o-hostname

Si estàs en una xarxa local, probablement això ja funcioni. Però si estàs exposat a internet, així com està és un blanc fàcil. Literalment en qüestió de minuts tindràs bots provant contrasenyes contra el teu servidor si tens el port 22 obert.

Així que passem al punt important: assegurar el teu servidor abans que algú més el descobreixi.

4. Canvis bàsics però importants a sshd_config

L’arxiu de configuració principal és a /etc/ssh/sshd_config. Abans de tocar res, sempre convé fer-ne una còpia:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

A continuació, els canvis que de veritat importen:

Desactiva l’accés amb contrasenya (si pots)

Si fas servir claus SSH (i hauries), desactiva el login per contrasenya per evitar atacs per força bruta:

PasswordAuthentication no

Això obliga que qualsevol intent de connexió necessiti una clau vàlida. Si estàs en una etapa primerenca i encara no tens claus configurades, deixa això com està, però canvia-ho quan puguis.

Permet només a usuaris específics

Limita l’ accés només als usuaris que ho necessiten:

AllowUsers el_teu_usuari un_altre_usuari

Això evita que comptes del sistema que no s’haurien de fer servir remotament puguin ser objectiu d’atacs.

Considera canviar el port

Això no és una solució de seguretat real, però ajuda a reduir soroll d’escàners automàtics. Per exemple:

Port 2222

Això evita que els bots que escanegen el port 22 vegin el teu servei SSH, tot i que si algú escaneja tots els ports, ho trobarà igual.

Desactiva root login directe

Això és gairebé sempre bona idea:

PermitRootLogin no

O bé, si realment ho necessites per a automatitzacions controlades:

PermitRootLogin prohibit-password

Això permet login per clau pública però no per contrasenya, que és on hi són els problemes.

5. Autenticació per clau pública

Per evitar contrasenyes (i els problemes que comporten), fes servir claus SSH.

Des del client (la teva màquina local):

ssh-keygen -t ed25519 -C "el-teu-correo@example.com"

Accepta la ubicació per defecte (~/.ssh/id_ed25519). Posa-li passphrase si pots.

Després, copia la clau al servidor:

ssh-copy-id -p 2222 el_teu_usuari@ip-o-hostname

(Si canvies el port, fa servir -p; si no, pots ometre’l.)

Això copia la teva clau pública a ~/.ssh/authorized_keys del servidor. A partir d’ara, pots entrar sense contrasenya.

6. Tallafocs: no obris més del necessari

En la majoria de sistemes moderns, pots fer servir ufw (Ubuntu) o firewalld (Fedora, RHEL) per obrir només el port que necessites.

A Ubuntu:

sudo ufw allow 2222/tcp
sudo ufw enable

I Fedora/RHEL:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

Verifica que pots connectar des d’una altra màquina abans de tancar sessió. És molt comú quedar fora per no provar abans d’aplicar canvis.


7. Ajustos que valen la pena

Reconnexió automàtica amb ServerAliveInterval

Evita sessions congelades si la teva xarxa té talls intermitents:

# A ~/.ssh/config a la teva màquina local
Host el-meu-servidor
    HostName 192.168.1.100
    User el_teu__usuari
    Port 2222
    ServerAliveInterval 60

Aquest petit ajust envia paquets cada 60 segons, mantenint viva la connexió.

Bloqueig per intents fallits: fail2ban

Instal·la fail2ban per banejar automàticament IPs que fan massa intents fallits:

sudo apt install fail2ban  # o dnf install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

La configuració per defecte ja protegeix SSH, però pots ajustar-la a /etc/fail2ban/jail.local.

8. Per si de cas

Si desactives l’accés per contrasenya i perds l’accés a la clau, estàs fora. Literalment. No pots entrar. Per això, algunes precaucions raonables:

  1. Tenir accés físic o IPMI/DRAC/iLO si és un servidor real.
  2. Guardar una còpia de la teva clau privada en un gestor de contrasenyes segur.
  3. Mantenenir al menys dues claus vàlides en authorized_keys, per si una falla.
  4. Considerar permetre temporalment PasswordAuthentication yes des d’ una IP concreta mitjançant regles en sshd_config o firewalld.

9. No sempre és bona idea

  1. PermetRootLogin yes: només si tens un entorn completament controlat (ex. VMs en local) i saps el que fas.
  2. Canviar el port a un de molt alt (ex. 65000): només és útil contra soroll automatitzat. No el facis servir com a substitut de bones pràctiques.
  3. No fer servir claus per “comoditat”: és un error que sempre es paga, tard o d’ hora.

10. Checklist tècnica pas a pas (resum ràpid)

# 1. Instal·lar el servidor SSH
sudo apt install openssh-server        # Debian/Ubuntu
sudo dnf install openssh-server        # Fedora/RHEL

# 2. Verificar que el servei funciona
sudo systemctl status ssh

# 3. Crear clau en el client
ssh-keygen -t ed25519 -C "elteu@correu.com"

# 4. Copiar la clau al servidor
ssh-copy-id -p 2222 usuari@host

# 5. Configurar sshd_config en el servidor
sudo vim /etc/ssh/sshd_config

# Canvis recomanats:
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers el_teu_usuario

# 6. Reiniciar el servei
sudo systemctl restart ssh

# 7. Obrir port al firewall
sudo ufw allow 2222/tcp          # o firewall-cmd --add-port=2222/tcp --permanent

# 8. Instal·lar fail2ban
sudo apt install fail2ban        # o dnf install fail2ban
sudo systemctl enable --now fail2ban

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *