Determinando o nome do host atualmente conectado via SSH

Determinando o nome do host atualmente conectado via SSH

Ao efetuar login via SSH, gostaria de saber, durante a execução do .bashrc, o nome do host que está se conectando.

O Ubuntu Server mostra o prompt:

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

...então esta informação está disponível em algum lugar.

Como posso acessá-lo?

Responder1

Se você digitar:

who

Você verá informações sobre os usuários logados. Entre outras coisas, você pode ver o host de onde eles estão logados. Por exemplo, agora meu laptop retorna isto:

who -u
darent   tty6         2014-02-14 01:15 11:02       20339
darent   tty7         2014-02-14 23:15  antic      31827 (:0)
darent   pts/7        2014-02-14 23:14 00:46       30246 (helena.local)
darent   pts/1        2014-02-14 23:16   .          1466 (:0)
darent   pts/9        2014-02-14 23:19 00:25         302 (:0)

Onde helena.local é o computador ao qual estou conectado via ssh.

Responder2

sshdefine a variável de ambiente $SSH_CONNECTIONpara conter o endereço IP do cliente, o número da porta do cliente, o endereço IP do servidor e o número da porta do servidor separados por espaços.

Você pode usar

echo ${SSH_CONNECTION%% *}

para obter o endereço IP do cliente. Para obter o nome DNS, use algo como hostou dig -x:

host ${SSH_CONNECTION%% *}

Responder3

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

Esta linha mostra o host do login anterior, não o atual.

Owho-métodofunciona para mim. Melhorar:who -m

Observe que a variável SSH_CONNECTIONse perde se você iniciar um subprocesso, por exemplo, chamando su.

informação relacionada