GNU/Linux >> Linux Esercitazione >  >> Linux

Elimina i problemi di connettività di rete in SSH con Mosh

Per accedere a un sistema remoto, usavamo telnet. A causa delle gravi vulnerabilità di sicurezza di telnet, è stato sostituito da ssh .

SSH consente agli utenti di accedere a sistemi remoti con/senza password ma con l'aiuto di una chiave privata e di una chiave pubblica. Il principale vantaggio di SSH è la sua crittografia. Consente all'utente di comunicare con il sistema remoto senza alcun timore di intercettazioni o manomissioni.

Le carenze di SSH

Mettere in funzione ssh in parole povere, è una connessione TCP di pacchetti crittografati.

SSH invia i pacchetti tra il sistema locale e remoto proprio come telnet ma il contenuto del pacchetto è crittografato. Non ci sono buffering ed elaborazione nel mezzo. Anche i caratteri digitati vengono inviati al sistema remoto e quindi il sistema remoto invia la sua risposta (che contiene il carattere digitato da visualizzare sullo schermo) al sistema locale.

Riesci a vedere l'intero viaggio di andata e ritorno per vedere un singolo carattere che hai digitato ???

“””Invia/riceve solo pacchetti crittografati “””

Ma cosa succede quando la rete è disconnessa o è molto lenta. La connessione TCP verrà interrotta e il sistema locale verrà lasciato sospeso in aria senza alcun errore. Non è il tipico sistema Linux bloccato, solo un terminale bloccato con la connessione SSH disconnessa.

Potresti aver avuto frustrazione con ssh in una delle seguenti situazioni.

  1. La tua connessione di rete è disconnessa. La tua sessione ssh non mostrerà nulla. Quando digiti nella shell, noterai che non sta succedendo nulla. E poi controllerai l'icona Internet/Wi-Fi.
  2. Quando hai una connessione Internet lenta, si verificherà la stessa situazione. I caratteri che digiti nel sistema locale possono apparire dopo pochi secondi o, nei casi peggiori, anche minuti.
  3. Quando sei inattivo per un lungo periodo, a volte SSH smette di funzionare anche se il tuo computer non era inattivo e la connessione di rete era attiva.

Per riassumere, SSH ha fornito grande sicurezza ma poca usabilità nelle connessioni ad alta latenza. Puoi usare il comando nohup in Linux per continuare a eseguire i comandi anche dopo che la connessione SSH si interrompe, ma non è davvero una buona soluzione. Sai cosa è meglio? Mosh!

Mosh:SSH senza problemi di connettività

Mosh sta per MObile SHell . Dà una soluzione semplice a tutti i problemi sopra menzionati. Utilizza una tecnica simile al buffering e alla sincronizzazione di elementi (oggetti) utilizzando il protocollo SSP (protocollo di sincronizzazione dello stato). E per trasmettere i pacchetti, usa UDP che è un protocollo senza connessione.

Per sapere come funziona mosh, leggi la sua pagina ufficiale.

Per evitare di reinventare la ruota, mosh usa ssh per l'autenticazione. Quindi non è necessario creare nuove coppie di chiavi o utenti e simili. Quindi ogni vantaggio di sicurezza che ssh has è anche con mosh . Implica anche che dovresti avere una configurazione SSH funzionante sia nel sistema locale che in quello remoto.

Installa mosh su Ubuntu e altre distribuzioni Linux

Se non hai ssh installato e configurato, impara le basi di SSH e abilita SSH su Ubuntu o qualsiasi altro Linux tu stia utilizzando.

Dopo esserti assicurato di avere una configurazione SSH funzionante, l'installazione di mosh è un'attività semplice. Il pacchetto che devi installare è lo stesso sia nei sistemi locali che remoti.

Per installare mosh nelle distribuzioni Linux basate su Ubuntu o Debian, puoi usare i seguenti comandi, uno per uno:

sudo apt update
sudo apt install mosh

Mosh è disponibile in tutte le principali distribuzioni Linux. Usa il gestore pacchetti della tua distribuzione per installarlo.

Dopo aver terminato l'installazione di mosh, tutto è pronto sul lato client/locale. Sul lato remoto (es. server), devi fare una semplice configurazione.

Configurazione di mosh su server remoto

Ricorda la parte che ho detto mosh usa UDP? Per impostazione predefinita, mosh utilizza le porte UDP 60000-61000. Quindi, se si dispone di un firewall sul sistema remoto, è necessario riscrivere la regola del firewall per quelle porte come segue. ufw è il gestore del firewall.

sudo ufw allow 60000:61000/udp

Colleghiamoci tramite mosh

A partire da ora, abbiamo un SSH funzionante, mosh installato in entrambi i sistemi e una regola firewall che consente il traffico UDP sulle porte 60K-61K sul server remoto.

Per usare mosh, è semplice come di seguito

mosh [email protected]

Sì! Lo so. È così semplice proprio come ssh.

Ma cosa succede se ho bisogno di specificare la porta ssh diversa dalla porta predefinita o di utilizzare opzioni specifiche ssh. Mosh ti ha coperto. Devi solo passare "opzione ssh [argomento] ” all'opzione –ssh .

Ad esempio, devo connettermi a ssh in esecuzione sulla porta 2222 sul server remoto. Può essere fatto come segue.

mosh [email protected] --ssh="ssh -p 2222"

Ecco che i sistemi sono collegati. Ora per realizzare il potere di mosh, prova a spegnere e riaccendere la connessione di rete. Puoi vedere che mosh funziona ancora. Che figata!

Spero che questo tutorial su Mosh ti sia piaciuto. Da quando ho scoperto Mosh, ho smesso di usare ssh per la connessione a server remoti. E tu? Ti è piaciuto Mosh o preferisci ancora SSH? Condividi le tue opinioni.


Linux
  1. Inizia con NetworkManager su Linux

  2. Diagnostica i problemi di connettività con il comando ping di Linux

  3. Risolvi i problemi della tua rete con tcpdump

  4. Automazione password SSH in Linux con sshpass

  5. Come raggiungere un servizio/server che si trova su una rete inaccessibile (usando i tunnel SSH)

Accesso SSH basato su chiave con PuTTY

Inizia con GNUPlot

Tutorial Podman - Inizia con Podman

Segreti del plasma:connettività SSH in Dolphin

Network Manager su Linux con esempi

Come ottenere le dimensioni di file/cartelle con SSH su Linux?