Comment puis-je supprimer les dernières informations de connexion de ssh?

15

Chaque fois que je me connecte à un serveur en utilisant ssh. L'invite me donne les informations de "dernière connexion". Je me demandais d'où venait cette information. Comment puis-je supprimer cet enregistrement si quelqu'un d'autre se connecte au même serveur, la personne verrait mes informations de connexion avec mon ip dedans?

Alors, comment puis-je faire cela? Pour mémoire, je ne pirate pas l'ordinateur de quelqu'un et le serveur exécute Ubuntu 12.04.

EDIT: quel fichier enregistre ce type d'informations? Si je trouve le fichier, je peux tout faire en tant que root.

Merci.

Gnijuohz
la source
Ubuntu 11.04! = Ubuntu 12.04.
un CVn le
Notez que ces informations peuvent également être demandées en exécutant last $USER.
Jaap Eldering
@ MichaelKjörling que voulez-vous dire?
Gnijuohz
!=est généralement lu comme "n'est pas égal à". Vous avez écrit Ubuntu 12.04dans le texte de la question, mais utilisé la ubuntu-11.04balise. Les deux ne sont pas équivalents, donc l'un ou l'autre doit être faux.
un CVn du
@ MichaelKjörling désolé, je n'ai pas remarqué que mon tag était faux. Merci!
Gnijuohz

Réponses:

7

En plus de / var / log / lastlog, il y a 3 fichiers dans /var/runet /var/log: utmp, wtmpet btmpqui informations sur les connexions actuelles attente (et informations supplémentaires), les connexions historiques et ont échoué. Voir http://en.wikipedia.org/wiki/Utmp pour une description détaillée. Vous ne pouvez pas modifier les fichiers avec des éditeurs normaux, mais vous pouvez les effacer.

ott--
la source
2
Ce n'est pas une bonne réponse.
vemv
44

Dans ubuntu, il se trouve dans /etc/ssh/sshd_config.

Trouvez la ligne qui dit:

PrintLastLog yes

et changer pour

PrintLastLog no (ou ajoutez s'il n'existe pas)

Cameron Aziz
la source
3
n'oubliez pas, vous devrez redémarrer ssh avec la commande suivante: tout service ssh restart cela devra être fait avec root / sudo
Cameron Aziz
Merci, mais je veux trouver le (s) fichier (s) qui contient (nt) les informations plus.
Gnijuohz
oh, désolé, on dirait que ott a eu celui-ci.
Cameron Aziz
Je crois que votre problème sera résolu en supprimant les fichiers suivants: /var/log/wtmpet /var/log/btmpet éventuellement /var/log/utmp. Il peut y avoir d'autres fichiers /var/logcontenant des données de connexion utilisateur (comme /var/log/wtmp.1), vous devrez donc également les effacer
Cameron Aziz
Pas besoin d'être désolé. Votre aide est très appréciée ~
Gnijuohz
4

utmp est normalement dans / var / run, pas dans / var / log. wtmp et btmp sont dans / var / log.

ssh n'est pas le seul programme qui écrit dans ces trois fichiers. Si vous les supprimez, comme quelqu'un l'a suggéré, vous interromprez de nombreux programmes. Ils devraient être là. Modifiez le fichier / etc / ssh / sshd_config, comme l'a suggéré Cameron Aziz.

Vous n'êtes pas le seul processus dans le shell. Vous n'utilisez pas de système d'exploitation à tâche unique. S'habituer à travailler sur un véritable système d'exploitation de réseau a été l'un des changements mentaux les plus difficiles que j'ai jamais faits, avec l'utilisation d'un ordinateur central et le calcul d'apprentissage. Concrètement, cela signifie que vous ne devez jamais supprimer un fichier à moins de savoir exactement ce qu'il fait dans le système.

Afin d'avoir une idée de la fréquence d'utilisation de certains fichiers, jetez un œil à lsof et jouez avec. Même lsof ne vous indique que les processus qui utilisent ACTUELLEMENT votre fichier, il ne vous donne pas de données historiques, alors soyez prudent.

artp
la source
1

Le mot-clé de configuration PrintLastLog extrait les informations du fichier / var / log / lastlog

Vous pouvez utiliser la commande lastlog pour afficher ces informations sur la ligne de commande.

Don Simon
la source
1

Voici une alternative qui fonctionne pour GNU et BSD (Mac OS X). Il tient également compte du fait que la plupart des paramètres sont commentés par défaut - ils sont de toute façon dans El Capitan):

sudo sed -i.bak "s/^#?PrintLastLog yes$/^PrintLastLog no$/" /etc/ssh/sshd_config

Sans le -i.bakchangement, je continuais à recevoir:

sed: 1: "/etc/ssh/sshd_config": bad flag in substitute command: 'h'
RENTBOY
la source
0

Voici la commande pour le faire automatiquement:

sudo sed -i "s/PrintLastLog .*/PrintLastLog no/1" /etc/ssh/sshd_config
Andy
la source