O SSH é um protocolo popular e eficaz que permite fazer login e gerenciar hosts remotos de sua máquina local. Este guia orienta você por vários comandos que você pode usar para verificar conexões SSH ativas no host remoto.
Observação: dependendo da configuração do sistema, alguns dos comandos que vamos discutir podem exigir que você tenha root ou sudo
privilégios.
1. Usando o Comando da OMS
O primeiro comando que você pode usar para mostrar conexões SSH ativas é o who
comando.
o who
O comando é usado para mostrar quem está atualmente conectado ao sistema. Ele nos permite visualizar os usuários conectados e os endereços IP de origem.
Para usar o who
comando, basta digitar who
sem nenhum parâmetro.

Na saída acima, você pode ver um usuário debian conectado via tty e duas sessões SSH de um endereço IP remoto.
Você também pode adicionar parâmetros ao who
comando para mostrar informações detalhadas.
Por exemplo, para mostrar a última inicialização para usuários conectados, adicione o -b -u
bandeira:
who -b -u

o who
O comando oferece mais opções para obter resultados personalizados. Confira a página do manual para saber mais.
2. Usando o Comando W
O próximo comando que você pode usar para mostrar o status de várias sessões SSH e usuários conectados ao servidor é o w
comando. Ao contrário do who
comando, o w
O comando fornece mais informações sobre os processos em execução para cada usuário.
Além disso, o w
O comando fornecerá informações sobre conexões SSH ociosas, o que é muito útil quando você precisa encerrá-las.
Se você executar o comando sem outras opções, deverá obter uma saída semelhante à abaixo.

No exemplo acima, o w
O comando fornece informações detalhadas, como nome de usuário, método TTY, endereço IP de origem, hora do login, tempo ocioso e muito mais.
Como o who
comando, você também pode usar o w
comando com vários parâmetros. A tabela abaixo mostra os vários parâmetros que você pode usar com o w
comando.
Parâmetro | O que faz |
---|---|
-h, –sem cabeçalho | Informa o terminal para não imprimir o cabeçalho |
-u, –sem corrente | Solicita que o terminal ignore o nome de usuário, pois exibe os processos dos usuários conectados e o tempo de CPU |
-s, –curto | Diz ao terminal para imprimir uma saída reduzida – excluindo o tempo de login, JCPU e PCPU |
-f, -de | Habilita/desabilita a opção FROM da saída de impressão |
-ajuda | Exibe as várias opções/parâmetros do comando w e sai |
-v, –versão | Exibe informações sobre a versão e sai |
do utilizador | Reduz os resultados ao usuário especificado |
O exemplo abaixo mostra a w
comando usado com o -s
e -f
parâmetros para mostrar uma saída resumida das sessões SSH atuais com a parte FROM truncada.

Embora raramente usado, você também pode usar o w
comando com parâmetros ambientais e de arquivo. Para saber mais sobre esses parâmetros, considere as páginas man.
3. Usando o último comando
Você também pode usar o last
comando para mostrar todas as sessões SSH conectadas. O último comando mostra a lista dos últimos usuários logados.
Funciona verificando o arquivo designado. Por exemplo, “/var/log/wtmp” mostra todos os usuários que efetuaram login e logout desde a criação do arquivo. O comando também fornece informações sobre as sessões SSH criadas entre o cliente e o servidor.
A sintaxe geral para o último comando é:
last
Aqui está um exemplo.

Como a saída do último comando é enorme, podemos usar o grep
comando para mostrar apenas as sessões ativas.
Por exemplo:
last | grep still

Você também pode modificar a saída do último comando para mostrar informações detalhadas.
Por exemplo, para mostrar os nomes de usuário e domínios completos, podemos usar o -w
bandeira.
last -w
O último comando suporta várias opções. Aqui estão as opções mais usadas para o último comando.
Parâmetro | O que faz |
---|---|
-a, –hostlast | Exibe o nome do host na última coluna |
-d, –dns | O Linux armazena o nome do host e o endereço IP de todos os hosts remotos. Este parâmetro transforma o IP em um nome de host |
-arquivo, –arquivo | Informa o último comando para usar um arquivo designado diferente de /var/log/wtmp |
-F, –tempo integral | Solicita por último para imprimir todas as datas e horas de login e logout |
-i, –ip | Semelhante ao –dns, exceto que em vez de mostrar o nome do host do host, ele mostra o número IP |
4. Usando o comando netstat
Não podemos esquecer do netstat
comando. Netstat é usado para mostrar todas as conexões de rede, interfaces de rede, tabelas de roteamento e muito mais.
Você também pode usar o comando netstat para filtrar sessões SSH estabelecidas ou conectadas em seu servidor Linux:
netstat | grep ssh

O comando acima mostra apenas as conexões SSH estabelecidas.
Para mostrar todas as conexões, incluindo escuta e não escuta, podemos usar o -a
sinalizar como:
nestat -a | grep ssh

5. Usando o comando ss
Se você quiser saber mais informações sobre as sessões SSH conectadas, você pode usar o ss
comando, que mostra os dados do soquete, tornando-o semelhante ao netstat
.
Por exemplo, podemos grep a saída do ss
comando com o -a
opção (all) para mostrar todas as sessões SSH conectadas. A sintaxe para isso é:
ss -a | grep ssh

A saída acima exibe todas as conexões SSH no host remoto. Isso incluirá o daemon SSHD.
Para filtrar as conexões SSH estabelecidas, você pode canalizar a saída de volta para grep.
ss -a | grep ssh | grep ESTAB

Os comandos acima retornarão apenas as conexões SSH ativas.
o ss
O comando também tem muitas outras opções que você pode usar para aprender várias coisas sobre conexões de servidor ativas. Por exemplo, você pode usar o -e
sinalizador para mostrar mais sobre as informações do soquete.
Empacotando
É uma boa prática continuar monitorando seus hosts remotos em busca de logins SSH não autorizados e tomar as medidas necessárias, como proteger seu servidor ou desabilitar a autenticação por senha. Enquanto isso, você também pode usar o encapsulamento SSH reverso para permitir a conexão externa ao seu PC.