Risposte:
Se stai usando Linux puoi terminare il processo:
ps aux | grep ssh
e quindi usare
kill <id>
Per uccidere il processo.
Se il comando kill non ha esito positivo, puoi provare
kill -9 <id>
kill -9
fino a dopo aver provato solo kill
. Molti processi avranno gestori di segnali che puliranno il loro uso delle risorse, chiuderanno in modo pulito connessioni e altre attività di pre-spegnimento. Se uccidi con -9, il processo si interrompe immediatamente senza eseguire la pulizia. Uccidere senza -9 sarà lavorare la maggior parte del tempo.
kill -9
senza motivo è come usare un fucile da caccia per uccidere una zanzara. :)
pgrep ssh | xargs kill
. Non usare -9
per niente davvero
ssh
comando, o che tutti i ssh
comandi che stai eseguendo vanno bene per uccidere. Questo non è certo un buon presupposto generale.
ssh
istanze su più server remoti per tutto il tempo, alcuni senza il mio coinvolgimento attivo diretto. Ad esempio, la modalità Emacs Tramp apre una ssh
connessione dietro le quinte quando visito un buffer remoto. Alcune persone usano filesystem userspace che fanno qualcosa di simile. Non è affatto raro. In effetti, suppongo che un singolo utente, una singola ssh
istanza sia un caso d'uso marginale di minoranza. Se funziona per te, va bene per te, ma non è un buon consiglio generale.
Quando si utilizza il multiplexing ssh, l'uccisione del processo ssh è spesso indesiderabile (uccide tutte le connessioni aperte con quell'host) e non è possibile accedere facilmente alla escape perché "escape non disponibile per le sessioni multiplexate". Il modo giusto è quindi eseguire l'analogo del comando di inoltro che si desidera annullare, ma aggiungendo -O cancel
. Per esempio:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Questo disabiliterà questo port forwarding senza terminare la sessione. Ancora una volta, questo funzionerà solo se si utilizza il multiplexing ssh per la connessione a 192.168.1.135 .
ssh -O exit 192.168.1.135
.
Come annullare una porta inoltrata in una sessione SSH già in esecuzione:
-KL port
Dovresti vedere questo:
ssh> -KL 10002
Canceled forwarding.
È possibile utilizzare il "tasto Esc" (di solito ~) seguito da C per ottenere un cli alla connessione. Da lì è possibile rimuovere i tunnel senza interrompere la connessione.
È possibile accedere a una console interattiva digitando ~C("C" maiuscola). Ciò consente di aggiungere e rimuovere dinamicamente i port forwarding (tra le altre cose).
Questa sequenza deve venire subito dopo un ritorno a capo / newline. Quindi, nel dubbio, basta digitare Enter~C(in sequenza).
Se non vedi apparire i personaggi sulla console, lo stai facendo bene :)
Ora dovresti vedere un ssh>
prompt.
Per rimuovere la porta, inserisci semplicemente -KL 10002
seguito da Enter(dov'è la 10002
tua porta inoltrata).
L'inverso - aggiungendo un nuovo avanti - può essere fatto in questo modo (dall'inizio alla fine):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions
. In tal caso, vedere la risposta eccellente di a3nm.
Warning: remote port forwarding failed for listen port
messaggio.