Risposte:
exit
dice alla tua attuale shell di uscire. Poiché (quando non si dispone di una connessione tunnel, ad esempio X11, attiva) ciò significa che il processo che sshd ha invocato sul lato server è terminato, SSH si disconnette.
~.
è la sequenza di fuga "magica" che SSH cattura e si disconnette immediatamente (incluso il tunnel X11).
Quindi no, questi non sono intercambiabili. Se si desidera che la shell remota (o qualunque programma sia in esecuzione in remoto) si chiuda correttamente, è necessario terminarla di conseguenza.
È già ben descritto nell'altra risposta, ma aggiungerei qualche informazione:
La singola connessione SSH oggi può contenere diverse sessioni (shell, comando), canali di inoltro TCP e canali di inoltro X11 . E arriva la differenza:
La scrittura exit
(o Ctrl+ D) abbatte il canale della sessione , ma se sono attivi alcuni canali X11 (ad esempio gvim
lascia diverse connessioni al server X che gestisce gli appunti e il titolo , che non è chiuso da exit
). La scrittura exit
lascerà questa applicazione X11 in esecuzione e il tuo terminale "si bloccherà" fino a quando non verrà chiuso.
Scrivere ~.
lacrime per l'intera connessione . Se si esegue un'applicazione X11, è possibile notare che è chiuso anche quando si scrive ~.
.