Antworten:
Möchten Sie dies nach etwas herausfinden, das bereits geschehen ist (Forensik), oder möchten Sie es schaffen, damit Sie protokollieren können, wer was tut?
Für die Forensik: /var/log/secure
Enthält auf meinem Fedora-System Aufzeichnungen über die Authentifizierung und den Benutzernamen jedes öffentlichen Schlüssels, gibt jedoch nicht an, welcher Schlüssel verwendet wurde. Sie haben hier wahrscheinlich kein Glück
Für zukünftige Überprüfbarkeit: Sie können die authorized_keys
Datei verwenden, um die Befehle festzulegen , auf die jede Anmeldung beschränkt ist, und dann ein Programm ausführen, das die Authentifizierung protokolliert (und möglicherweise nachfolgende Befehle, die so etwas wie Sudoscript verwenden ):
Wenn die Optionsphrase am Anfang einer Zeile das Schlüsselwort command = "string" enthält, führt jede SSH-Verbindung, die sich mit diesem bestimmten Schlüssel authentifiziert, nur den angegebenen Befehl aus, selbst wenn in der Befehlszeile ein anderer Befehl angegeben wurde.
Es muss jedoch gesagt werden, dass es wahrscheinlich sinnvoller ist, mehrere Konten einzurichten und dann einen gemeinsamen Zugriffsbereich einzurichten ...
getent
und cut
wird das für Sie lösen.
getent passwd $USER | cut -d: -f 7
... mit einem gemeinsamen Konto ...
Vielen Dank, dass Sie uns ein perfektes Beispiel gegeben haben, um zu erklären, warum dies eine schlechte Idee ist. ;-);
Im Ernst, wollen Sie wollen, kann nicht afaik getan werden. Und wenn mit "Schlüsselkommentar" der Kommentar gemeint ist, der sich in der Datei id_rsa nach dem Schlüssel befindet, ist dies ebenfalls ein No-Go. Es ist ein Kommentar, der nicht an den Server auf der anderen Seite gesendet wird.
Ja wirklich. Richten Sie mehrere Konten ein.
Aus Gründen der Überprüfbarkeit und wenn Ihre Mitarbeiter ssh-agent verwenden, können Sie dies in Ihre .bashrc-Datei einfügen:
SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log