4

Я поразил Google как можно больше по этому вопросу, в частности, для OS X, я не нахожу ответа. Нет ничего плохого, но уровень любопытства высок.

$ssh foobar@lan-connection.local
Password:
Last login: Wed Apr  7 21:28:03 2010 from my-laptop.local
^lonely tylenol^
  • Строка 1 - моя команда
  • строка 2 - оболочка, запрашивающая пароль
  • строка 3, откуда мой вопрос
  • строка 4 выходит из /etc /motd

Я не могу найти ничего в ~/ файла .bash *, который содержит строку "Last Login", и хотел бы изменить ее. Он выполняет поиск типа имени хоста, который я не могу определить.

Если я ssh на другой хост:

$ssh remote-host@remote.location456.example.com
Last login: Wed Apr  7 21:14:51 2010 from 123-234-321-123-some.cal.isp.net.example
hi there, you are on box 456
  • строка 1 - моя команда
  • строка 2 снова, откуда мой вопрос
  • строка 3 из /etc /motd

* Тире IP-адрес не меняется

На этом удаленном хосте у меня ~/.ssh и настроены соответствующие ключи, поэтому не было запроса пароля

Откуда исходит «Последний вход в систему:», откуда берется отметка даты, и, самое главное, откуда берется имя хоста?

Находясь на remote-host@remote.location.example.com (вставка 456)$ echo hostname remote.location.example456.com

Или с помощью dig, чтобы убедиться, что я настроил rDNS/PTR, для которого я не уполномочен, но мой провайдер правильно установил ...

$dig -x 123.234.321.123  PTR   remote.location.example456.com

или же

$dig PTR 123.321.234.123.in-addr.arpa. +short
remote.location.example456.com.

моим предыдущим hostname было 123-234-321-123-some.cal.isp.net.example, которое я установил с hostname -s remote.location.example456.com , потому что было неприятно видеть такое длинное имя. Это решает значение $ echo hostname которое теперь возвращает remote.location.example456.com.

Mac OS X, 10.6 в этом случае, кажется, чтит:

touch ~/.hushlogin

Если оставить этот файл пустым, при входе в систему ничего не получится. Я хочу знать, что контролирует разрешение хоста IP и как все это работает. Например, запуск last сообщает об огромном списке моих логинов, которые имеют тупо длинные имена хостов, когда они предпочтительнее, чем просто remote.location.example456.com.

Меня больше смущает, читая справочную страницу для wtmp и lastlog , похоже, что lastlog не используется в OS X, /var /log /lastlog не существует. На самом деле, ни один из них не существует на 10,5 или 10,6:

 /var/run/utmp     The utmp file.
 /var/log/wtmp     The wtmp file.
 /var/log/lastlog  The lastlog file.

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

2 ответа2

3

от man sshd_config:

 PrintLastLog
         Specifies whether sshd(8) should print the date and time of the
         last user login when a user logs in interactively.  The default
         is ``yes''.

Так что, по крайней мере, это объясняет, почему вы видите сообщение.

Что касается разрешения имени хоста - он будет использовать библиотеку системного распознавателя, которая может возвращать результаты, отличные от dig. В частности, если у вас есть запись в вашем локальном (т.е. локальном для удаленного компьютера) файле /etc /hosts, она будет (вероятно, в зависимости от того, как настроен преобразователь) сначала проверена. Если удаленный компьютер использует локальный (для него) сервер имен, который обслуживает результаты, отличные от общедоступного (например, ваш провайдер обслуживает один набор записей PTR внутренне, а другой - снаружи), это также может объяснить несоответствие.

2

Страницы руководства на моей машине 10.6 указывают мне в направлении asl(3), utmpx(5) и endutxent(3). Похоже, что современная Mac OS X записывает информацию, похожую на utmp/wtmp/lastlog, в файлы базы данных Apple SysLog (asl) в /var /log /asl /*.

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

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