Ricerca nel sito web

Come accedere al terminale del server Linux nel browser Web utilizzando lo strumento "Wetty (Web + tty)".


Come amministratore di sistema, probabilmente ti connetti ai server remoti utilizzando un programma come GNOME Terminal (o simili) se utilizzi un desktop Linux o un client SSH come Putty se hai un Macchina Windows, mentre esegui altre attività come navigare sul Web o controllare la posta elettronica.

Non sarebbe fantastico se ci fosse un modo per accedere a un server Linux remoto direttamente dal browser web? Fortunatamente per tutti noi, esiste uno strumento chiamato Wetty (Web + tty) che ci permette di fare proprio questo, senza la necessità di cambiare programmi e tutto dalla stessa finestra del browser web.

Installazione di Wetty su Linux

Wetty è disponibile nel repository GitHub del suo sviluppatore. Per questo motivo, indipendentemente dalla distribuzione, stai utilizzando alcune dipendenze che devono essere installate manualmente prima di clonare il repository localmente e installare il programma.

Nelle distribuzioni basate su RHEL, come CentOS, Rocky Linux e AlmaLinux, devi installare NodeJS e il repository EPEL come mostrato:


yum groupinstall 'Development Tools'
curl -fsSL https://rpm.nodesource.com/setup_17.x | bash -
yum update 
yum install epel-release git nodejs npm

In Debian e le sue derivate, la versione di NodeJS disponibile nei repository della distribuzione è precedente alla versione minima richiesta per installare Wetty, quindi devi installarla dal NodeJS:


apt install curl build-essential
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
apt update && apt install -y git nodejs npm

Dopo aver installato queste dipendenze, clona il repository GitHub:

git clone https://github.com/krishnasrinivas/wetty

Cambia la directory di lavoro in wetty, come indicato nel messaggio sopra:

cd wetty

quindi installa Wetty eseguendo:

npm install

Se ricevi messaggi di errore durante il processo di installazione, risolvili prima di procedere ulteriormente. Nel mio caso, la necessità di una versione più recente di NodeJS in Debian era un problema che doveva essere risolto prima di eseguire con successo npm install.

Avvio di Wetty e accesso al terminale Linux dal browser Web

A questo punto, potresti avviare l'interfaccia web nella porta locale 8080 per Wetty eseguendo (questo presuppone che la tua directory di lavoro attuale sia /wetty) :

node app.js -p 8080

Come puoi vedere nell'immagine qui sotto:

Ma fatti un favore e NON inserisci nome utente e password poiché questa connessione non è sicura e non vuoi che le tue credenziali viaggino attraverso il cavo senza protezione.

Per questo motivo dovresti sempre eseguire Wetty tramite HTTPS. Creiamo un certificato autofirmato per proteggere la nostra connessione al server remoto:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

E poi usalo per avviare Wetty tramite HTTPS.

Tieni presente che dovrai aprire la porta HTTPS personalizzata in cui desideri eseguire Wetty:

firewall-cmd --add-service=https # Run Wetty in the standard HTTPS port (443)
firewall-cmd --permanent --add-service=https
firewall-cmd --add-port=XXXX/tcp # Run Wetty on TCP port XXXX
nohup node app.js --sslkey key.pem --sslcert cert.pem -p 8080 &

L'ultimo comando nella sequenza precedente avvierà Wetty in background in ascolto sulla porta 8080. Poiché stiamo utilizzando un certificato autofirmato, è prevedibile che il browser mostri un avviso di sicurezza – È perfettamente sicuro ignorarlo e aggiungere un'eccezione di sicurezza – in modo permanente o per la sessione corrente:

Dopo aver confermato l'eccezione di sicurezza potrai accedere al tuo VPS utilizzando Wetty. Inutile dire che potrai eseguire tutti i comandi e i programmi come se fossi seduto davanti a un terminale reale o virtuale, come puoi vedere nella seguente schermata: