1

Есть ли простой способ узнать, был ли я где-нибудь в SSH без ввода 'exit'?

Например, если я в настоящее время сижу за компьютером A и я SSH обращался к компьютеру B, а затем с B на компьютер C, есть ли способ, которым я мог бы сказать, если не считать закрытия сессии и использования имени хоста, чтобы узнать, где я я в?

(Предположительно, это решение также дало бы понять, что я нигде не являюсь SSH, если я просто на локальном хосте, но если я нахожусь SSH в другом месте и оттуда SSH вернется на мою локальную машину, я смогу сказать.)

5 ответов5

11

Если вы знаете, что вы ssh'ed, но не знаете откуда, попробуйте

w

в командной строке. Вывод включает в себя поле FROM, которое может быть полезным.

3

Попробуйте настроить подсказку для включения имени хоста; в противном случае мне нравится использовать screen при каждом входе в систему со строкой состояния, содержащей имя хоста (немного сложна в настройке, и она становится рекурсивной со строками статуса на экранах со строками статуса). Вы должны иметь возможность echo $HOSTNAME или просто выполнить hostname .

3

Проверьте $ SSH_CONNECTION. Он сообщает вам, с какого IP-адреса и порта вы в данный момент подключаетесь. По крайней мере, так обстоит дело с OpenSSH. YMMV с другими серверами.

1

Мне нравится ответ "W",

и другой способ - проверить имя хоста, чтобы узнать, как называется компьютер:

hostname
0

В вашем сценарии подключитесь напрямую от A к C, если это возможно. Это позволит избежать двойного шифрования. И, возможно, увеличит время ожидания.

Также измените переменную оболочки PS1 для каждой учетной записи, чтобы она отражала имя хоста, если это еще не сделано. Этот прием также поможет вам в ситуациях, когда вы используете chroot.

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