Как мне отредактировать сообщение SSH "Последний вход"?
Я хотел бы отредактировать Last login:
информация, которая распечатывается вместе с сообщением дня, но я не могу найти сценарий, который генерирует и выводит эхо.
Где это определено, в легко редактируемом сценарии оболочки, или закрыто в двоичном файле?
Обратите внимание, это отличается от ServerFault: как я могу отредактировать приветственное сообщение при запуске ssh?, Информация о последнем входе в систему не распечатывается изнутри /etc/update-motd.d/
, но вместо этого определяется путем установки PrintLastLog
флаг, и поэтому не может быть отредактирован, как и другие части сообщения дня.
3 ответа
Похоже, формат напечатанной строки компилируется в 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 (который вы можете создать в нано-редакторе, нажав следующие клавиши: esc+v+esc)
Возможно, придется немного поработать, если вы просто хотите сменить последний IP-адрес для входа?
Например, вы можете изменить отображаемый IP-адрес на "localhost", снова войдя в ssh с удаленного компьютера!
Удаленный вход через ssh >> ssh username @ localhost
Теперь последний зарегистрированный IP будет localhost