Если я нахожусь в терминале и ssh подключаюсь к новому хосту, затем к ssh к другому хосту, затем к другому и т.д., Есть ли способ определить эту цепочку хостов, кроме рекурсивного выхода и наблюдения, где я в конечном итоге?
2 ответа
Существуют переменные с именами SSH_CLIENT и SSH_CONNECTION, которые показывают в вашей текущей оболочке, откуда вы ssh'd и с какого IP-адреса вы пришли, но это только для последнего соединения. Существуют команды, которые вы можете отправлять каждому клиентскому соединению ssh (например, <RET><RET>~C
чтобы открыть командную строку), но это ограничивается несколькими вещами. Возможно, наиболее интересным для вас будет ~#
, который показывает информацию о соединении, но не показывает хосты.
Если вы можете отслеживать, сколько раз вы нажимали ~
после <RET><RET>
, вы можете фоновое соединение N в своей цепочке, начиная с конца, и, в свою очередь, каждый раз выводить $ SSH_CONNECTION, чтобы увидеть, куда оно идет. Когда вы вернетесь к своему хосту, вам нужно снова выдвинуть их на первый план с помощью fg
.
Я думаю, что мой вопрос к вам будет, почему вы должны знать, и вам нужно знать часто?
Запустите netstat -t -n|grep 22
(замените 22 номером порта вашего ssh-сервера, если вы его изменили), по крайней мере, вы знаете IP-адрес хоста, с которого вы пришли. Или попробуйте who