Назад | Перейти на главную страницу

Как мне отредактировать сообщение SSH «последний вход»?

Я хотел бы отредактировать Last login: информация, которая распечатывается вместе с сообщением дня, но я не могу найти сценарий, который генерирует и выводит эхо.

Где это определено, в легко редактируемом сценарии оболочки или закрыто в двоичном файле?


Обратите внимание, это отличается от ServerFault: как отредактировать приветственное сообщение при запуске ssh?. Информация "последний вход" не распечатанный изнутри /etc/update-motd.d/, но вместо этого определяется установкой PrintLastLog флаг, и поэтому не может редактироваться, как другие части сообщения дня.

Похоже, формат печатаемой строки компилируется в sshd:

[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

Я также не вижу какой-либо опции конфигурации для ее изменения, поэтому вам нужно будет отредактировать исходный код и перекомпилировать.

редактировать: В предельном случае вы можете найти источник на http://www.openssh.org. Но вы не говорите нам, что используете OpenSSH или что-то еще о своей платформе, поэтому трудно быть более конкретным. Если это система Linux, вам будет гораздо лучше получить исходный код, подходящий для вашего дистрибутива, обычным способом и перекомпилировать с помощью механизмов, специфичных для вашего дистрибутива.

Но на самом деле тебе не стоит этого делать вообще если у вас нет веской бизнес-причины для этого: вы проводите техническое обслуживание страшный сон для себя, переходя к скомпилированной вручную версии чувствительного к безопасности пакета.

Последняя информация для входа хранится в /var/log/wtmp или /var/log/utmp это двоичные файлы. Не глядя на исходный код sshd, я не могу быть полностью уверен, но ожидал, что он извлекает информацию из этих файлов с помощью подходящих системных вызовов.

Кажется маловероятным, что вы найдете способ легко изменить эту информацию, ведь это часть безопасности пользователей.


Если вам действительно нужны кровавые подробности, вам нужно посмотреть исходный код функции login_get_lastlog который можно найти в loginrec.c

Другое решение - очистить экран в начале файла motd следующим образом:

^[[H^[[2J
whatever was originally in the motd file here

Примечание: заменить ^[ с escape-символом (который вы можете создать в редакторе nano, нажав следующие клавиши: esc+v+esc)

Возможно, некоторые способы обойтись, если вы просто хотите изменить IP-адрес последнего входа?

Например, вы можете изменить отображаемый IP-адрес на «localhost», снова войдя в ssh с удаленно управляемой машины!

Удаленный вход через ssh >> ssh имя пользователя @ localhost

Теперь последний записанный IP-адрес будет localhost