ssh, "Último Login", "last" e OS X


4

Eu acertei os googles o máximo que pude sobre isso, sendo específico para o OS X, não estou encontrando uma resposta. Nada está errado, mas os níveis de curiosidade são altos.

$ssh foobar@lan-connection.local
Password:
Last login: Wed Apr  7 21:28:03 2010 from my-laptop.local
^lonely tylenol^
  • A linha 1 é meu comando
  • linha 2 é o shell pedindo a senha
  • linha 3 é onde a minha pergunta vem
  • linha 4 sai do / etc / motd

Não consigo encontrar nada em ~ / de um dos arquivos .bash * que contém a string "Last Login", e gostaria de alterá-lo. Ele executa algum tipo de pesquisa de nome de host, que não posso determinar.

Se eu ssh para outro host:

$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
  • linha 1 é o meu comando
  • a linha 2 é novamente, de onde vem minha pergunta
  • a linha 3 é de / etc / motd

* O endereço IP do dash'd não é invertido

Neste host remoto, eu tenho ~ / .ssh e suas chaves correspondentes configuradas, então não houve solicitação de senha

De onde vem o "Last Login:", de onde vem o carimbo de data e, mais importante, de onde vem o nome de host?

Enquanto estiver em remote-host@remote.location.example.com (box 456) $ echo hostname remote.location.example456.com

Ou com dig, para ter certeza de que eu tenho o rDNS / PTR configurado, para o qual eu não sou autoritativo, mas meu ISP configurou corretamente ...

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

ou

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

meu anterior hostnamecostumava ser 123-234-321-123-some.cal.isp.net.example, com o qual eu escolhi hostname -s remote.location.example456.com, porque era desagradável ver um nome tão longo. Isso resolve o valor de $ echo hostnameque agora retorna remote.location.example456.com.

Mac OS X, 10.6 é neste caso, parece honrar:

touch ~/.hushlogin

Se deixar esse arquivo vazio, não recebo nada no shell quando faço o login. Eu quero saber o que controla a resolução do host do IP e como está tudo funcionando. Por exemplo, a execução lastrelata uma lista enorme de meus logins, que possuem nomes de host muito longos, quando seria preferível ser apenas remote.location.example456.com.

Mais confuso para mim, lendo a página do manual wtmpe lastlog, parece que o lastlog não é usado no OS X, / var / log / lastlog não existe. Na verdade, nenhum deles existe em 10.5 ou 10.6:

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

Se devo assumir que o sistema está fazendo algum tipo de pesquisa reversa, eu certamente não sei o que é, pois não é preciso.

Respostas:


2

As páginas man na minha máquina 10.6 me apontam na direção de asl (3), utmpx (5) e endutxent (3). Parece que o Mac OS X moderno grava as informações do tipo utmp / wtmp / lastlog nos arquivos do banco de dados Apple SysLog (asl) em / var / log / asl / *.

Parece que os longos nomes de host que incomodam você foram registrados naquele banco de dados quando era o nome desses hosts, e você não pode se livrar deles antes da edição ou editar seu banco de dados asl.


Ahh, isso é muito bom, estou feliz em limpar o banco de dados asl, e você está certo, ao mesmo tempo, eu não tinha o conjunto PTR, então eles entraram no banco de dados ASL e não estão "presos" dessa maneira. Obrigado. Isso é uma porcaria, porque você e os outros caras estão certos em suas respostas, qual eu faço para verificar?
user17245

3

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

Então, pelo menos, explica por que você está vendo a mensagem.

quanto à resolução do nome do host - ele usará a biblioteca de resolução de sistema, que pode retornar resultados diferentes do que dig. Em particular, se você tem uma entrada no seu arquivo local / etc / hosts (isto é, local para a máquina remota), isso (provavelmente, dependendo de como o resolvedor está configurado) será verificado primeiro. Se a máquina remota estiver usando um servidor de nomes local (para ele) que armazene um resultado diferente do resultado público (por exemplo, seu provedor serve um conjunto de registros PTR internamente e outro conjunto externamente), isso também poderia explicar a disparidade.


Eu chequei a outra resposta como correta, pois ela me diz como consertar o nome do host, mas você também me diz como alterar os bits do LastLog, então eu queria verificar você. Acabou sendo uma questão do que era mais importante para mim resolver. Obrigado, sua resposta foi bem.
user17245
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.