# 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: ```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 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: ```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 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: ```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 ``` L’esquema é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è 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`: ```bash 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: ```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 s’ha arribat al servei SSH, però l’autenticació ha fallat. Cal revisar: ```text - 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 ```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` |