
Al iniciar sesión a través de SSH, me gustaría saber, durante la ejecución de .bashrc
, el nombre del host que se está conectando.
Ubuntu Server muestra el mensaje:
Last login: Fri Feb 14 11:34:55 2014 from somehost.local
... entonces esta información está disponible en alguna parte.
¿Cómo puedo acceder a él?
Respuesta1
Si escribes:
who
Verá información sobre los usuarios que iniciaron sesión. Entre otras cosas, puedes ver el host desde el que iniciaron sesión. Por ejemplo, ahora mismo mi computadora portátil devuelve esto:
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)
Donde helena.local es la computadora desde la que estoy conectado a través de ssh.
Respuesta2
ssh
establece la variable de entorno $SSH_CONNECTION
para que contenga la dirección IP del cliente, el número de puerto del cliente, la dirección IP del servidor y el número de puerto del servidor separados por espacios.
Puedes usar
echo ${SSH_CONNECTION%% *}
para obtener la dirección IP del cliente. Para obtener el nombre DNS use algo como host
o dig -x
:
host ${SSH_CONNECTION%% *}
Respuesta3
Last login: Fri Feb 14 11:34:55 2014 from somehost.local
Esta línea muestra el host del inicio de sesión anterior, no el actual.
Elwho
-métodofunciona para mi. Mejor:who -m
Tenga en cuenta que la variable SSH_CONNECTION
se pierde si inicia un subproceso, por ejemplo, llamando a su
.