Wie kann ich die letzten Anmeldeinformationen von ssh entfernen?


14

Immer wenn ich mich mit ssh auf einem Server anmelde. Die Eingabeaufforderung gibt mir die Information "Letzte Anmeldung". Ich habe mich gefragt, woher diese Information kommt. Wie kann ich diesen Datensatz entfernen, damit die Person meine Anmeldeinformationen mit meiner IP-Adresse sehen kann, wenn sich eine andere Person auf demselben Server anmeldet?

Wie kann ich das machen? Ich hacke nicht den Computer von jemandem und auf dem Server läuft Ubuntu 12.04.

BEARBEITEN: Welche Datei protokolliert diese Art von Informationen? Wenn ich die Datei finde, kann ich als root alles tun.

Vielen Dank.


Ubuntu 11.04! = Ubuntu 12.04.
ein Lebenslauf vom

Beachten Sie, dass diese Informationen auch durch Ausführen von angefordert werden können last $USER.
Jaap Eldering

@ MichaelKjörling was meinst du?
Gnijuohz

!=wird allgemein als "ist nicht gleich" gelesen. Sie haben Ubuntu 12.04im Fragentext geschrieben, aber den ubuntu-11.04Tag verwendet. Die zwei sind nicht äquivalent, also muss das eine oder andere falsch sein.
ein Lebenslauf vom

@ MichaelKjörling sorry, ich habe nicht bemerkt, dass mein tag falsch war. Vielen Dank!
Gnijuohz

Antworten:


7

Zusätzlich zu / var / log / lastlog gibt es 3 Dateien in /var/runund /var/log: utmp, wtmpund btmp, die halten , Informationen über aktuelle Anmeldungen (und weitere Informationen), historische und fehlgeschlagener Logins. Eine ausführliche Beschreibung finden Sie unter http://en.wikipedia.org/wiki/Utmp . Sie können die Dateien nicht mit normalen Editoren bearbeiten, sie könnten jedoch gelöscht werden.


2
Dies ist keine richtige Antwort.
vemv

43

In Ubuntu findet man es in /etc/ssh/sshd_config.

Suchen Sie die Zeile mit der Aufschrift:

PrintLastLog yes

und wechseln zu

PrintLastLog no (oder hinzufügen, wenn es nicht existiert)


3
Vergessen Sie nicht, Sie müssen ssh mit dem folgenden Befehl neu starten: service ssh restart Dies muss alles mit root / sudo erledigt werden
Cameron Aziz

Danke, aber ich möchte die Datei (en) finden, die die Informationen enthält.
Gnijuohz

Oh, Entschuldigung, es sieht so aus, als hätte ich das hier.
Cameron Aziz

Ich glaube, Ihr Problem wird durch Löschen der folgenden Dateien gelöst: /var/log/wtmpund /var/log/btmpund möglicherweise /var/log/utmp. Möglicherweise sind andere Dateien /var/logmit Benutzeranmeldedaten (z. B. /var/log/wtmp.1) enthalten, sodass Sie diese ebenfalls löschen müssen
Cameron Aziz

Kein Grund, sich zu entschuldigen. Ihre Hilfe wird sehr geschätzt ~
Gnijuohz

4

utmp befindet sich normalerweise in / var / run, nicht in / var / log. wtmp und btmp befinden sich in / var / log.

ssh ist nicht das einzige Programm, das in diese drei Dateien schreibt. Wenn Sie sie löschen, wie jemand vorgeschlagen hat, werden Sie viele Programme unterbrechen. Sie werden dort erwartet. Ändern Sie die Datei / etc / ssh / sshd_config, wie von Cameron Aziz vorgeschlagen.

Sie sind nicht der einzige Prozess in der Shell. Sie verwenden kein Single-Tasking-Betriebssystem. Die Gewöhnung an ein echtes Netzwerkbetriebssystem war eine der härtesten mentalen Veränderungen, die ich je gemacht habe, mit der Verwendung eines Mainframes und der Lernrechnung. In der Praxis bedeutet dies, dass Sie eine Datei nur dann entfernen sollten, wenn Sie genau wissen, was sie im System bewirkt.

Werfen Sie einen Blick auf lsof und spielen Sie damit herum, um einen Eindruck davon zu bekommen, wie häufig einige Dateien verwendet werden. Selbst wenn lsof nur angibt, welche Prozesse Ihre Datei aktuell verwenden, werden keine historischen Daten angezeigt. Seien Sie also vorsichtig.


1

Das Konfigurationsschlüsselwort PrintLastLog ruft Informationen aus der Datei / var / log / lastlog ab

Mit dem Befehl lastlog können Sie diese Informationen in der Befehlszeile anzeigen .


1

Hier ist eine Alternative, die für GNU und BSD (Mac OS X) funktioniert. Außerdem wird berücksichtigt, dass die meisten Einstellungen standardmäßig auskommentiert sind (sie befinden sich sowieso in El Capitan):

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

Ohne die -i.bakÄnderung bekam ich immer wieder:

sed: 1: "/etc/ssh/sshd_config": bad flag in substitute command: 'h'

0

Hier ist der Befehl, dies automatisch zu tun:

sudo sed -i "s/PrintLastLog .*/PrintLastLog no/1" /etc/ssh/sshd_config
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.