
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
ssh
define a variável de ambiente $SSH_CONNECTION
para 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 host
ou 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_CONNECTION
se perde se você iniciar um subprocesso, por exemplo, chamando su
.