Сегодня поделюсь историей, которая началась плохо, но закончилась хорошо.
В общем, у меня домашний шлюз — mini PC на Debian. А поскольку мощность для шлюза избыточна, приходится использовать её не по прямому назначению.
Поставил туда transmission-daemon и рулю в консоли через transmission-remote.
Сами понимаете, что каждый раз в консоли набирать transmission-remote, да ещё с ключами — кнопки сотрутся, поэтому пользуюсь алиасами.
И вот сегодня я накосячил с алиасом настолько знатно, что Bash упал и я покинул чат. И после этого не смог подключиться по SSH.
Если бы я правил sshd_config, я бы, конечно, подключился двумя сессиями и всё восстановил. Кто ж знал, что правка .bashrc тоже опасна.
Думал, уже придётся лезть на чердак, снимать миниписюк и править файлы локально, но всё оказалось гораздо проще. Оказывается, есть даже два способа, чтобы поправить ситуацию.
Выполнить:
ssh user@host -t /bin/shВместо
/bin/shможно указать любую оболочку (их примерный список можно глянуть в/etc/shells). Понятно, что оболочка должна быть установлена на удалённой машине.Подключиться по SFTP, скачать
.bashrc, локально отредактировать и залить обратно.
В общем, всё сработало нормально. Алиас исправил. Всё работает.
Кстати, использование именно первого пункта позволяет обходить тривиальные защиты SSH (типа скриптовой двухфакторной аутентификации или использования sleepshell для пользователя, которому только разрешён проброс портов), основанные на простой замене оболочки пользователя в /etc/passwd.
При выполнении скрипта хакер уже аутентифицирован в системе и может просто заменить оболочку.








Комментарии