Gerenciando conexões SSH

8

Em um servidor Linux, como eu encontraria uma lista de todas as conexões SSH atuais ou desconectaria uma conexão SSH específica?

    
por Cerin 15.02.2011 / 18:32

4 respostas

11

Se você planeja fazer isso de forma interativa, o mais simples seria simplesmente invocar who e ver se há algum usuário de um host remoto.

[you@host]$ who
user1      :0           Feb  8 09:45
user1      pts/1        Feb 14 17:56 (:0.0)
malcolm    pts/3        Feb 15 17:50 (cockpit.serenity.com)
reynold    pts/2        Feb 15 17:48 (host123.firefly.co.uk)

Isto, obviamente, não é infalível, mas é extremamente simples de digitar sob demanda e processar facilmente com o olho humano.

Como @gravyface apontou, se você incluir uma -u option who também imprimirá o PID associado, o qual você pode passar para kill para terminar uma conexão.

    
por 15.02.2011 / 18:54
8

Que tal usar o lsof?

# lsof -i |grep ":ssh"

sshd    1943      root    3u  IPv6   5698       TCP *:ssh (LISTEN)
sshd    1943      root    4u  IPv4   5700       TCP *:ssh (LISTEN)
sshd    3217      root    3r  IPv4   9687       TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd    3220      user1   3u  IPv4   9687       TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd    3327      root    3r  IPv4  10595       TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)
sshd    3330      user2   3u  IPv4  10595       TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)

Você deve conseguir eliminar a conexão incorreta (por exemplo, para desconectar o usuário2):

# kill -9 3330
    
por 15.02.2011 / 19:35
1

Para visualizar as conexões ssh, você pode fazer um netstat -atn | grep ':22' . Ele mostra todas as conexões na porta 22.

Para eliminar a conexão, você pode tentar encontrar o PID do sshd (SSH Daemon) com ps-ax .

Edit: Acho que você pode encontrar o PID de sua bash session (ou shell equivalente). Matar isso deve deixá-los bem.

Outro recurso: este tópico tem algumas dicas sobre o assunto.

    
por 15.02.2011 / 18:38
0

Tente isto:

$ ps aux | grep sshd

Para desconectá-los, você pode kill PID (onde PID é o Id do processo na segunda coluna), se você tem privilégios de administrador ou se é o usuário em questão.

    
por 15.02.2011 / 18:39