Как в удаленной оболочке узнать, с какого компьютера я зашел на удаленную машину?

Не похоже, чтобы Tcl давал вам какой-либо контроль над cd и pwd.

Альтернативный вариант :разрешает символические ссылки в WORK env var и сравнивает это с pwd:

format {cd "%s"} [expr {[pwd] eq [file normalize $::env(WORK)] ? {$WORK} : [pwd]}]
7
08.10.2020, 03:31
3 ответа

На моем компьютере с Red Hat 7 я запускаю who am iили who am Iили who -m.
В последнем столбце будет указано имя машины, на которой я вошел в систему из (в скобках ). Если я нахожусь на своем локальном компьютере, в последнем столбце будет показан идентификатор моей консоли/дисплея. На моей машине это (:0 ).

Внимание Это работает только в интерактивной оболочке.
ssh ScottieH@RemoteServer who -mдаст неожиданные результаты.
На моей машине с Red Hat 7 выдает ошибку.
YMMV

5
18.03.2021, 22:59

Вы можете использовать w, whoили даже last.

Также вы можете просмотреть sshdжурналы,journalctl -u sshd -n 100

5
18.03.2021, 22:59

ssh всегда устанавливает для переменной среды SSH_CONNECTIONв удаленной оболочке значение, содержащее хост и порт клиента и сервера.

Это также работает из не -интерактивных оболочек и на машинах, на которых нет utmp/systemd/что бы то ни было (, например. на роутере или камере ).

ssh root@unq 'echo $SSH_CONNECTION'
192.168.38.152 35466 192.168.38.1 22

Затем вы можете выполнить обратный поиск хоста по этому адресу:

ssh root@unq.und 'nslookup "${SSH_CONNECTION%% *}"'
...
Name:      192.168.38.152
Address 1: 192.168.38.152 bursku.und
18
18.03.2021, 22:59

Теги

Похожие вопросы