6.8 KiB
Punt zero: accés al laboratori amb túnels SSH
Objectiu
Abans de començar el desplegament de PeerTube, cal assegurar l’accé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:
1. ProxyJump amb -J
2. Túnels locals amb -L i -N
Arquitectura d'accés
Ordinador local Ubuntu
│
│ SSH
▼
Host Proxmox amb IP pública
│
├── TrueNAS
├── contenidors LXC
└── serveis interns
Decisió tècnica: no exposarem directament les interfícies d’administració internes a Internet. L’accés es farà passant pel Proxmox mitjançant SSH.
1. Permisos de les claus SSH
La clau privada ha de tenir permisos restringits:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/la_teva_clau
chmod 644 ~/.ssh/la_teva_clau.pub
Comprovació:
ls -ld ~/.ssh
ls -l ~/.ssh/la_teva_clau*
Sortida esperada:
drwx------ ~/.ssh
-rw------- ~/.ssh/la_teva_clau
-rw-r--r-- ~/.ssh/la_teva_clau.pub
Atenció: al servidor s’hi posa la clau pública
.pub. Al client SSH s’utilitza la clau privada, sense.pub.
2. Accés SSH directe al Proxmox
Si el Proxmox escolta SSH al port 22:
ssh -i ~/.ssh/la_teva_clau root@IP_PUBLICA_PROXMOX
Si el Proxmox escolta SSH en un altre port, per exemple el 2222:
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.
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:
ssh -i ~/.ssh/la_teva_clau \
-J root@IP_PUBLICA_PROXMOX:2222 \
usuari_truenas@192.168.100.101
Aquest esquema fa:
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:
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í:
ssh usuari_truenas@localhost -p 2222
L’esquema és:
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:
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
2222amb 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:
ssh -i ~/.ssh/la_teva_clau \
-p 2222 \
-N \
-L 2201:192.168.100.101:22 \
root@IP_PUBLICA_PROXMOX
I després:
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.
ssh -i ~/.ssh/la_teva_clau \
-N \
-L 8443:192.168.100.101:443 \
root@IP_PUBLICA_PROXMOX
Després obrim al navegador local:
https://localhost:8443
Si el Proxmox escolta SSH pel port 2222:
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è s’està accedint per
localhost, però el certificat del TrueNAS no està emès per aquest nom.
6. Túnel local en segon pla
L’opció -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:
ssh -i ~/.ssh/la_teva_clau \
-f -N \
-L 8443:192.168.100.101:443 \
root@IP_PUBLICA_PROXMOX
Atenció: si s’envia 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:
ps aux | grep ssh
Per veure ports locals escoltant:
ss -ltnp
Exemple de sortida:
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:
CTRL + C
Si està en segon pla, primer localitzem el procés:
ps aux | grep ssh
I després el tanquem:
kill PID
Exemple:
kill 12345
9. Diagnosi ràpida de problemes SSH
Connection refused
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:
System Settings → Services → SSH → Start
Nota: activar
Start Automaticallyno arrenca el servei en aquell moment. També cal prémerStarto el botó de play.
Permission denied
Permission denied (publickey)
Vol dir que ja s’ha arribat al servei SSH, però l’autenticació ha fallat.
Cal revisar:
- usuari correcte
- clau pública enganxada a l’usuari correcte
- ús de la clau privada al client
- permisos de la clau privada
- shell vàlida de l’usuari
- accés SSH habilitat per aquell usuari
Authenticity of host can't be established
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 |