Respostas:
Se você estiver usando Linux, você pode matar o processo:
ps aux | grep ssh
e depois use
kill <id>
Para matar o processo.
Se o comando kill não for bem sucedido, você pode tentar
kill -9 <id>
kill -9até depois de tentar apenas kill. Muitos processos terão manipuladores de sinal que limparão o uso de recursos, fecharão bem as conexões e outras tarefas de pré-desligamento. Se você mata com -9, o processo morre imediatamente sem fazer a limpeza. Matar sem -9 vai trabalhar a maior parte do tempo.
kill -9sem razão é como usar uma espingarda para matar um mosquito. :)
pgrep ssh | xargs kill. -9Na verdade, não use para nada
sshcomando ou que todos os sshcomandos que você está executando são bons para matar. Isso dificilmente é uma boa suposição geral.
sshinstâncias em vários servidores remotos o tempo todo, algumas delas sem o meu envolvimento ativo direto. Por exemplo, o modo Emacs Tramp abre uma sshconexão nos bastidores quando visito um buffer remoto. Algumas pessoas usam sistemas de arquivos do espaço do usuário que fazem algo semelhante. Não é nada incomum. De fato, eu assumiria que um único usuário, uma única sshinstância, é um caso de uso marginal minoritário. Se funciona para você, é bom para você, mas não é um bom conselho geral.
Ao usar a multiplexação ssh, interromper o processo ssh geralmente é indesejável (mata todas as conexões abertas com esse host) e você não pode acessar facilmente a fuga porque "a fuga não está disponível para sessões multiplexadas". O caminho certo é executar o análogo do comando de encaminhamento que você deseja cancelar, mas adicionando -O cancel. Por exemplo:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Isso desativará esse encaminhamento de porta sem encerrar a sessão. Novamente, isso funcionará apenas se a multiplexação ssh estiver em uso para a conexão com 192.168.1.135 .
ssh -O exit 192.168.1.135.
Como cancelar uma porta encaminhada em uma sessão SSH já em execução:
-KL portVocê deve ver isso:
ssh> -KL 10002
Canceled forwarding.
Você pode usar a "tecla de escape" (geralmente ~) seguida de C para obter um cli na sua conexão. Você pode remover túneis sem interromper sua conexão.
Você pode entrar em um console interativo digitando ~C(capital "C"). Isso permite adicionar e remover dinamicamente encaminhamentos de porta (entre outras coisas).
Essa sequência deve ocorrer logo após um retorno de carro / nova linha. Então, na dúvida, basta digitar Enter~C(em sequência).
Se você não vê os personagens aparecerem no console, está fazendo certo :)
Agora você deve ver um ssh>prompt.
Para remover a porta, basta digitar -KL 10002seguido por Enter(onde 10002está sua porta encaminhada).
O inverso - adicionando um novo encaminhamento - pode ser feito assim (do início ao fim):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions. Se for esse o caso, veja a excelente resposta da a3nm.
Warning: remote port forwarding failed for listen portmensagem.