Se no Linux, observe que a página do manual de ss
tem um exemplo exatamente para isso:
ss -o state established '( dport = :ssh or sport = :ssh )'
Eu tenho alguns comandos adicionados ao meu .bashrc
, então toda vez que eu fizer login, eu posso ver conexões SSH ativas. No entanto, às vezes mostra mais do que apenas conexões SSH devido a um número de porta similar contendo "22", por ex. "223346"
Este é o comando que é executado:
netstat -tan | grep ":22\|ssh" | grep -v "LISTEN" | awk '{print " "$4" -> "$5" "$6}'
Às vezes, é produzido algo assim:
192.168.1.75:52623 -> 213.174.2.30:22650 SYN_SENT
192.168.1.75:22 -> 192.168.1.109:60561 ESTABLISHED
Existe uma maneira de usar o grep para mostrar apenas conexões SSH? Obrigado!
Se no Linux, observe que a página do manual de ss
tem um exemplo exatamente para isso:
ss -o state established '( dport = :ssh or sport = :ssh )'
Eu abordaria isso com esse teste:
:
e o final do o campo $
. Você pode ajustar a lógica para incluir qualquer entrada ou saída, se for isso que você procura.
Se você usar o -n
flag do netstat, não precisará procurar por "ssh"; para ser mais granular e solicitar que apenas as portas sejam numéricas (no Linux) ao tentar resolver os IPs, use --numeric-ports
. Também descartei o sinalizador -a
netstat para filtrar as linhas "LISTEN" (já que elas não estão conectadas a outro endpoint). Como estou apenas imprimindo conexões estabelecidas, também abandonei o campo 6 ("ESTABELECIDO") da saída; isso é fácil o suficiente para adicionar de volta, estaticamente ou dinamicamente.
netstat -n | awk '$6 == "ESTABLISHED" && ($3 ~ /:22$/ || $4 ~ /:22$/) { print $4 " -> " $5}'
ou
netstat --numeric-ports | awk '$6 == "ESTABLISHED" && ($3 ~ /:22$/ || $4 ~ /:22$/) { print $4 " -> " $5}'
Tags ssh networking security grep