ssh, "Останній вхід", `last` та OS X


4

Я максимально вдарив googles про це, будучи специфічним для 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 *, що містить рядок "Останній вхід", і хотів би змінити його. Він виконує певний тип пошуку імені хоста, який я не можу визначити.

Якщо я сш іншому хосту:

$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звіти величезний список моїх логінів, які мають безперечно довгі імена хостів, коли їм було б краще просто віддалено.location.example456.com.

Мені більше бентежить, читаючи сторінку man для, 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

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

Здається, довгі імена хостів, які турбують вас, були записані в тій базі даних, коли саме ці хости були названі, і ви не можете позбутися від них, якщо не обрізати чи редагувати базу даних asl.


Ах, це дуже добре, я радий витерти базу даних asl, і ви маєте рацію, свого часу я не мав набору PTR, тому вони потрапили в db ASL і не "застрягли" таким чином. Дякую. Це відстійно, тому що ви та інші хлопці в своїх відповідях правильно, на яку я можу перевірити?
користувач17245

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''.

Так що принаймні пояснює, чому ви бачите повідомлення.

щодо роздільної здатності імені хоста - він використовуватиме бібліотеку системних рішень, яка може повертати інші результати, ніж копати. Зокрема, якщо у вас є запис у вашому локальному (тобто, локальному для віддаленої машини) файлі / etc / hosts, це (можливо, залежно від того, як налаштований роздільник) спочатку перевіряється. Якщо віддалена машина використовує локальний сервер імен, який сервер відрізняється від загальнодоступного результату (наприклад, ваш Інтернет-провайдер обслуговує один набір записів PTR всередині, а інший набір зовні), це також може пояснити невідповідність.


Я перевірив іншу відповідь як правильну, оскільки вона підказує мені, як виправити ім'я хоста, але ви також підкажете, як змінити біти LastLog, тому я хотів перевірити вас. Це врешті-решт було питанням того, що мені було найважливіше вирішити. Дякую, ваша відповідь також була помітна.
користувач17245
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.