Ermitteln des Namens des aktuell über SSH verbundenen Hosts

Ermitteln des Namens des aktuell über SSH verbundenen Hosts

Beim Einloggen über SSH möchte ich während der Ausführung .bashrcden Namen des Hosts wissen, der die Verbindung herstellt.

Ubuntu Server zeigt die Eingabeaufforderung an:

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

... also sind diese Informationen irgendwo verfügbar.

Wie kann ich darauf zugreifen?

Antwort1

Wenn Sie Folgendes eingeben:

who

Sie sehen Informationen zu den angemeldeten Benutzern. Unter anderem können Sie sehen, von welchem ​​Host sie angemeldet sind. Mein Laptop gibt beispielsweise derzeit Folgendes zurück:

who -u
darent   tty6         2014-02-14 01:15 11:02       20339
darent   tty7         2014-02-14 23:15  antic      31827 (:0)
darent   pts/7        2014-02-14 23:14 00:46       30246 (helena.local)
darent   pts/1        2014-02-14 23:16   .          1466 (:0)
darent   pts/9        2014-02-14 23:19 00:25         302 (:0)

Wobei helena.local der Computer ist, von dem aus ich per SSH verbunden bin.

Antwort2

sshLegt die Umgebungsvariable so fest $SSH_CONNECTION, dass sie die Client-IP-Adresse, die Client-Portnummer, die Server-IP-Adresse und die Server-Portnummer durch Leerzeichen getrennt enthält.

Sie können

echo ${SSH_CONNECTION%% *}

um die IP-Adresse des Clients zu erhalten. Um den DNS-Namen zu erhalten, verwenden Sie etwas wie hostoder dig -x:

host ${SSH_CONNECTION%% *}

Antwort3

Last login: Fri Feb 14 11:34:55 2014 from somehost.local

In dieser Zeile wird der Host des vorherigen, nicht des aktuellen Logins angezeigt.

Derwho-Methodefunktioniert für mich. Besser:who -m

Beachten Sie, dass die Variable SSH_CONNECTIONverloren geht, wenn Sie einen Unterprozess starten, zB durch den Aufruf von su.

verwandte Informationen