2

Я подключаюсь от машины A к машине B На машине B я хотел бы напечатать имя хоста A в командной строке bash.

Я попытался получить это, используя who -m и выполнив несколько операций cut , но вывод выводится по-разному в разных unix'ах.

Я не мог найти прямой способ получить это имя хоста.

Я вижу две возможности:

  1. Каким-то образом передать его при подключении с помощью ssh (я не думаю, что когда-либо буду использовать что-то еще для удаленного подключения)
  2. Обрабатывать, who выводит несколькими способами, и надеяться, что не так уж много версий

Возможность (1) предпочтительна, потому что я могу отправить имя хоста, которое я назначил хосту, а не имя моего оператора, но я не смог найти способ заархивировать это в man ssh_config .

1 ответ1

1

Доступ к IP-адресу клиента довольно прост. В моем .profile у меня есть следующий фрагмент:

PS1="\T [\h:\w]\n(from ${SSH_CLIENT%% *}) $ "

который выдает подсказку из двух строк, которая выглядит следующим образом:

08:25:14 [fluorine:~]
(from 72.69.85.67) $ 

Если получение имени хоста клиента действительно важно для вас, вы можете использовать этот IP-адрес и выполнить обратный поиск DNS на извлеченном IP-адресе (при условии, что на сервере установлен dig или что-то подобное).

Или, как вы предлагаете, вы можете отправлять переменные среды на сервер, предполагая, что у вас настроен сервер ssh. Вы можете обратиться к этому ответу за помощью в этом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .