Определение имени хоста, подключенного в данный момент по SSH

Определение имени хоста, подключенного в данный момент по SSH

При входе через SSH во время выполнения мне хотелось бы узнать .bashrcимя хоста, к которому осуществляется подключение.

Ubuntu Server отображает приглашение:

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

...значит эта информация где-то доступна.

Как я могу получить к нему доступ?

решение1

Если вы введете:

who

Вы увидите информацию о вошедших пользователях. Среди прочего, вы можете увидеть хост, с которого они вошли. Например, прямо сейчас мой ноутбук возвращает это:

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)

Где helena.local — это компьютер, с которого я подключаюсь по ssh.

решение2

sshустанавливает переменную среды $SSH_CONNECTION, содержащую IP-адрес клиента, номер порта клиента, IP-адрес сервера и номер порта сервера, разделенные пробелами.

Вы можете использовать

echo ${SSH_CONNECTION%% *}

чтобы получить IP-адрес клиента. Чтобы получить DNS-имя, используйте что-то вроде hostили dig -x:

host ${SSH_CONNECTION%% *}

решение3

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

В этой строке отображается хост предыдущего, а не текущего входа.

Thewho-методМне подходит. Лучше:who -m

Обратите внимание, что переменная SSH_CONNECTIONтеряется, если вы запускаете подпроцесс, например, вызывая su.

Связанный контент