Skip to content

SSH UserEnvironment einrichten

Damit der User beim einloggen per SSH auf dem Server ein Namen bekommt, aktivieren wir die SSH Option PermitUserEnvironment in der Datei /etc/ssh/sshd_config. In der /var/log/syslog Datei steht dann der User, welcher sich auf dem System per SSH eingelogt hat.

....
Apr  8 09:04:38 earth logger: Login by "Fred Feuerstein" as "root". $SSH_CLIENT=217.199.67.137 15293 22.
....

Zuerst setzen wir die Option PermitUserEnvironment in der Datei /etc/ssh/sshd_config auf yes. Wenn diese Option nicht existiert, erstellen wir sie einfach.

....
PermitUserEnvironment yes
....

Dann erstellen wir uns die Datei /etc/ssh/sshrc, mit folgendem Inhalt.

#!/bin/bash

# xauth handling, code adapted from sshd(8)
if read proto cookie && [ -n "$DISPLAY" ]; then
    if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
        # X11UseLocalhost=yes
        echo add unix:`echo $DISPLAY | cut -c11-` $proto $cookie
    else
        # X11UseLocalhost=no
        echo add $DISPLAY $proto $cookie
    fi | /usr/bin/xauth -q -
fi

if [ "$ORIGINAL_USER" = "" ]; then
    logger -pdaemon.notice "Login by \"unknown user\" as \"$USER\" \$SSH_CLIENT=$SSH_CLIENT."
else
    logger -pdaemon.notice "Login by \"$ORIGINAL_USER\" as \"$USER\" \$SSH_CLIENT=$SSH_CLIENT."
fi

# vim: syntax=bash ts=4 sw=4 sts=4 sr noet

Da wir nun die Option PermitUserEnvironment aktiviert haben, kann man zu jeden SSH Key in der ~/.ssh/authorized_keys Informationen in Variablen packen, welche Systemweit Gültigkeit haben.

....
environment="ORIGINAL_USER=Fred Feuerstein" ssh-rsa AAAAB3Nza...OQ== ffeuerstein@flintstones.net
....

Damit die Änderungen übernommen werden, starten wir den Service ssh neu.

root:~# systemctl restart ssh.service