Если вы знаете, что вы ssh'ed, но не знаете откуда, попробуйте
w
в командной строке. Вывод включает в себя поле FROM, которое может быть полезным.
Есть ли простой способ узнать, был ли я где-нибудь в SSH без ввода 'exit'?
Например, если я в настоящее время сижу за компьютером A и я SSH обращался к компьютеру B, а затем с B на компьютер C, есть ли способ, которым я мог бы сказать, если не считать закрытия сессии и использования имени хоста, чтобы узнать, где я я в?
(Предположительно, это решение также дало бы понять, что я нигде не являюсь SSH, если я просто на локальном хосте, но если я нахожусь SSH в другом месте и оттуда SSH вернется на мою локальную машину, я смогу сказать.)
Если вы знаете, что вы ssh'ed, но не знаете откуда, попробуйте
w
в командной строке. Вывод включает в себя поле FROM, которое может быть полезным.
Попробуйте настроить подсказку для включения имени хоста; в противном случае мне нравится использовать screen
при каждом входе в систему строку состояния, содержащую имя хоста (немного сложную в настройке, и она становится рекурсивной со строками состояния на экранах со строками состояния). Вы должны быть в состоянии echo $HOSTNAME
или просто выполнить hostname
.
Проверьте $ SSH_CONNECTION. Он сообщает вам, с какого IP-адреса и порта вы в данный момент подключаетесь. По крайней мере, так обстоит дело с OpenSSH. YMMV с другими серверами.
Мне нравится ответ "W",
и другой способ - проверить имя хоста, чтобы узнать, как называется компьютер:
hostname
В вашем сценарии подключитесь напрямую от A к C, если это возможно. Это позволит избежать двойного шифрования. И, возможно, увеличит время ожидания.
Также измените переменную оболочки PS1 для каждой учетной записи, чтобы она отражала имя хоста, если это еще не сделано. Этот прием также поможет вам в ситуациях, когда вы используете chroot.