Add tunels-ssh.md

commit inicial
This commit is contained in:
Max HeadRoom 2026-06-05 08:30:09 +02:00
parent 7b537af9f4
commit fdebd3b6d0

335
tunels-ssh.md Normal file
View File

@ -0,0 +1,335 @@
# Punt zero: accés al laboratori amb túnels SSH
## Objectiu
Abans de començar el desplegament de PeerTube, cal assegurar laccés als serveis interns del laboratori.
En aquest escenari, el host Proxmox és accessible des de fora per SSH, però altres serveis interns, com TrueNAS o els contenidors LXC, només són accessibles des de la xarxa privada.
Per aquest motiu utilitzarem SSH de dues maneres:
```text
1. ProxyJump amb -J
2. Túnels locals amb -L i -N
```
## Arquitectura d'accés
```text
Ordinador local Ubuntu
│ SSH
Host Proxmox amb IP pública
├── TrueNAS
├── contenidors LXC
└── serveis interns
```
> **Decisió tècnica:** no exposarem directament les interfícies dadministració internes a Internet. Laccés es farà passant pel Proxmox mitjançant SSH.
---
## 1. Permisos de les claus SSH
La clau privada ha de tenir permisos restringits:
```bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/la_teva_clau
chmod 644 ~/.ssh/la_teva_clau.pub
```
Comprovació:
```bash
ls -ld ~/.ssh
ls -l ~/.ssh/la_teva_clau*
```
Sortida esperada:
```console
drwx------ ~/.ssh
-rw------- ~/.ssh/la_teva_clau
-rw-r--r-- ~/.ssh/la_teva_clau.pub
```
> **Atenció:** al servidor shi posa la clau pública `.pub`. Al client SSH sutilitza la clau privada, sense `.pub`.
---
## 2. Accés SSH directe al Proxmox
Si el Proxmox escolta SSH al port 22:
```bash
ssh -i ~/.ssh/la_teva_clau root@IP_PUBLICA_PROXMOX
```
Si el Proxmox escolta SSH en un altre port, per exemple el `2222`:
```bash
ssh -i ~/.ssh/la_teva_clau -p 2222 root@IP_PUBLICA_PROXMOX
```
---
## 3. Accés SSH al TrueNAS amb ProxyJump
Aquesta opció serveix per entrar per SSH al TrueNAS passant pel Proxmox.
```bash
ssh -i ~/.ssh/la_teva_clau \
-J root@IP_PUBLICA_PROXMOX \
usuari_truenas@192.168.100.101
```
Si el Proxmox escolta SSH pel port `2222`:
```bash
ssh -i ~/.ssh/la_teva_clau \
-J root@IP_PUBLICA_PROXMOX:2222 \
usuari_truenas@192.168.100.101
```
Aquest esquema fa:
```text
Ordinador local Ubuntu
│ SSH
Proxmox públic
│ SSH intern
TrueNAS 192.168.100.101
```
> **Nota:** aquesta és la forma més neta quan volem obtenir una shell SSH real dins del TrueNAS.
---
## 4. Túnel local cap al SSH del TrueNAS
També es pot crear un túnel local cap al port 22 del TrueNAS.
Primer obrim el túnel:
```bash
ssh -i ~/.ssh/la_teva_clau \
-N \
-L 2222:192.168.100.101:22 \
root@IP_PUBLICA_PROXMOX
```
Aquesta terminal queda oberta mantenint el túnel.
En una altra terminal, entrem al TrueNAS així:
```bash
ssh usuari_truenas@localhost -p 2222
```
Lesquema és:
```text
localhost:2222
│ túnel SSH
Proxmox
TrueNAS 192.168.100.101:22
```
Si el Proxmox escolta SSH pel port `2222`, la comanda del túnel seria:
```bash
ssh -i ~/.ssh/la_teva_clau \
-p 2222 \
-N \
-L 2222:192.168.100.101:22 \
root@IP_PUBLICA_PROXMOX
```
> **Atenció:** en aquest cas hi ha dos ports `2222` amb funcions diferents. El primer `-p 2222` és el port SSH del Proxmox. El segon `-L 2222:...` és el port local que obrim al nostre ordinador.
Per evitar confusió, es pot usar un altre port local, per exemple `2201`:
```bash
ssh -i ~/.ssh/la_teva_clau \
-p 2222 \
-N \
-L 2201:192.168.100.101:22 \
root@IP_PUBLICA_PROXMOX
```
I després:
```bash
ssh usuari_truenas@localhost -p 2201
```
---
## 5. Túnel local cap a la GUI web de TrueNAS
Per accedir a la interfície web de TrueNAS sense exposar-la directament a Internet, fem un túnel cap al port HTTPS del TrueNAS.
```bash
ssh -i ~/.ssh/la_teva_clau \
-N \
-L 8443:192.168.100.101:443 \
root@IP_PUBLICA_PROXMOX
```
Després obrim al navegador local:
```text
https://localhost:8443
```
Si el Proxmox escolta SSH pel port `2222`:
```bash
ssh -i ~/.ssh/la_teva_clau \
-p 2222 \
-N \
-L 8443:192.168.100.101:443 \
root@IP_PUBLICA_PROXMOX
```
> **Nota:** el navegador pot mostrar un avís de certificat perquè sestà accedint per `localhost`, però el certificat del TrueNAS no està emès per aquest nom.
---
## 6. Túnel local en segon pla
Lopció `-N` indica que no volem obrir una shell remota, només mantenir el túnel.
Si volem enviar el túnel al background, afegim `-f`:
```bash
ssh -i ~/.ssh/la_teva_clau \
-f -N \
-L 8443:192.168.100.101:443 \
root@IP_PUBLICA_PROXMOX
```
> **Atenció:** si senvia el túnel al background, després caldrà localitzar el procés SSH per tancar-lo.
---
## 7. Veure túnels SSH actius
Per veure processos SSH oberts:
```bash
ps aux | grep ssh
```
Per veure ports locals escoltant:
```bash
ss -ltnp
```
Exemple de sortida:
```console
LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("ssh",pid=12345,fd=5))
```
---
## 8. Tancar un túnel SSH
Si el túnel està obert en una terminal interactiva, es pot tancar amb:
```text
CTRL + C
```
Si està en segon pla, primer localitzem el procés:
```bash
ps aux | grep ssh
```
I després el tanquem:
```bash
kill PID
```
Exemple:
```bash
kill 12345
```
---
## 9. Diagnosi ràpida de problemes SSH
### Connection refused
```console
ssh: connect to host 192.168.100.101 port 22: Connection refused
```
Vol dir que la màquina respon, però no hi ha cap servei SSH escoltant al port 22.
En el cas de TrueNAS, cal revisar:
```text
System Settings → Services → SSH → Start
```
> **Nota:** activar `Start Automatically` no arrenca el servei en aquell moment. També cal prémer `Start` o el botó de play.
### Permission denied
```console
Permission denied (publickey)
```
Vol dir que ja sha arribat al servei SSH, però lautenticació ha fallat.
Cal revisar:
```text
- usuari correcte
- clau pública enganxada a lusuari correcte
- ús de la clau privada al client
- permisos de la clau privada
- shell vàlida de lusuari
- accés SSH habilitat per aquell usuari
```
### Authenticity of host can't be established
```console
The authenticity of host ... can't be established
```
Això és normal en la primera connexió a una màquina nova. Indica que el client encara no coneix la clau del servidor.
---
## 10. Resum de comandes
| Objectiu | Comanda |
|---|---|
| Entrar al Proxmox | `ssh -i ~/.ssh/la_teva_clau root@IP_PUBLICA_PROXMOX` |
| Entrar al Proxmox per port 2222 | `ssh -i ~/.ssh/la_teva_clau -p 2222 root@IP_PUBLICA_PROXMOX` |
| Entrar al TrueNAS amb salt | `ssh -i ~/.ssh/la_teva_clau -J root@IP_PUBLICA_PROXMOX usuari_truenas@192.168.100.101` |
| Entrar al TrueNAS amb salt i Proxmox al 2222 | `ssh -i ~/.ssh/la_teva_clau -J root@IP_PUBLICA_PROXMOX:2222 usuari_truenas@192.168.100.101` |
| Obrir túnel SSH cap al TrueNAS | `ssh -i ~/.ssh/la_teva_clau -N -L 2201:192.168.100.101:22 root@IP_PUBLICA_PROXMOX` |
| Entrar pel túnel SSH | `ssh usuari_truenas@localhost -p 2201` |
| Obrir túnel web cap a TrueNAS | `ssh -i ~/.ssh/la_teva_clau -N -L 8443:192.168.100.101:443 root@IP_PUBLICA_PROXMOX` |
| Obrir GUI TrueNAS | `https://localhost:8443` |