Como obter o endereço IP do cliente SSH usando o shell script?

0

No servidor SSH, Eu quero obter o endereço IP do cliente conectado. eu uso $ who ou $ w pode obter informações registradas (incluir endereço IP do cliente)

Eu só quero o endereço IP do cliente (uma coisa), use no shell script

    
por sungki Hong 10.11.2016 / 07:41

3 respostas

2

Está disponível como parte da variável de ambiente SSH_CLIENT :

$ echo "$SSH_CLIENT"
SSH_CLIENT=192.168.0.101 39323 22
$ echo "$SSH_CLIENT" | cut -d' ' -f 1
192.168.0.101
    
por 10.11.2016 / 08:11
1

Para todos os usuários, tente

w --no-header | awk '{print $1" "$3}'

Em suma

w -h | awk '{print $1" "$3}'

Lá você pode encontrar o nome de usuário. Lembre-se de que um usuário pode efetuar login várias vezes e em diferentes locais / IPS. Você também deseja verificar se pode forçar o comando w a gerar IPs em vez de nomes de host (depende da versão -n ou -i)

Provavelmente você também precisa filtrar logins locais (console)

    
por 10.11.2016 / 08:13
0

Outra maneira é usar netstat e awk . Supondo que você esteja usando a porta 22 para o protocolo ssh :

netstat -putan | awk '/:22 / && /ESTABLISHED/ {split($5,result,":"); print result[1]}'
    
por 10.11.2016 / 08:31