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 -9
até 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 -9
sem razão é como usar uma espingarda para matar um mosquito. :)
pgrep ssh | xargs kill
. -9
Na verdade, não use para nada
ssh
comando ou que todos os ssh
comandos que você está executando são bons para matar. Isso dificilmente é uma boa suposição geral.
ssh
instâ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 ssh
conexã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 ssh
instâ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 port
Você 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 10002
seguido por Enter(onde 10002
está 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 port
mensagem.