Em um servidor Linux, como eu encontraria uma lista de todas as conexões SSH atuais ou desconectaria uma conexão SSH específica?
linux
command-line-interface
ssh
Cerin
fonte
fonte
Respostas:
Se você planeja fazer isso de maneira interativa, o mais simples seria simplesmente chamar
who
e ver se há usuários de um host remoto.Obviamente, isso não é infalível, mas é extremamente simples de digitar sob demanda e processar facilmente com o olho humano.
Como o @gravyface apontou, se você incluir uma
-u
opçãowho
, também imprimirá o PID associado ao qual você poderá passarkill
para encerrar uma conexão.fonte
-u
lhe dará o PID.who -u
. Matar o pid não encerrou a conexão na minha máquina remota. No entanto, depois que fiz umalsof -i | grep ":ssh"
sugestão na resposta do @kce, recebi um pid diferente; matar esse processo encerrou a conexão. Talvez haja vários processos iniciados por causa de uma conexão ssh e matarem o exibido por quem não encerra a conexão; essa é a minha explicação.Que tal usar lsof?
Você deve ser capaz de eliminar a conexão incorreta (por exemplo, desconectar o usuário2):
fonte
lsof -i tcp:22
e você não precisará do grep.ssh
e não especificar a-p
opção ..Para visualizar as conexões ssh, você pode fazer um
netstat -atn | grep ':22'
. Ele mostra todas as conexões na porta 22.Para interromper a conexão, você pode tentar encontrar o PID do sshd (SSH Daemon) com
ps-ax
.Edit: Eu acho que você pode encontrar o PID de sua
bash
sessão (ou shell equivalente). Matar isso deve deixá-los bem.Outro recurso: este tópico tem algumas dicas sobre o assunto.
fonte
Tente o seguinte:
$ ps aux | grep sshd
Para desconectá-los, você pode
kill PID
(ondePID
está o ID do processo na segunda coluna), se você tiver privilégios de root ou o usuário em questão.fonte