При входе на сервер с использованием SSH отображаются два сообщения MOTD.

Я хотел изменить MOTD, который отображается, когда вы входите в компьютер на TTY, который, кажется, работает, но почему-то он не просто показывает MOTD в /etc/motd а также /etc/update-motd.d/, но и другое сообщение.

Это отображается при входе на мой сервер:

sam@laptop:~$ ssh <user>@<server>
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 2.6.32-042stab068.8 i686)

 * Documentation:  https://help.ubuntu.com/
No mail.
Last login: Thu Feb 21 19:20:55 2013 from <ip>
Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 2.6.32-042stab068.8 i686)

 * Documentation:  https://help.ubuntu.com/

<user>@<server>:~$

мой update-motd.d содержит два файла, 00-header а также 10-help-text,

00-header содержит следующее:

[ -r /etc/lsb-release ] && . /etc/lsb-release

if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
        # Fall back to using the very slow lsb_release utility
        DISTRIB_DESCRIPTION=$(lsb_release -s -d)
fi

printf "Welcome to %s (%s %s %s)\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)"     "$(uname -m)"

А также 10-help-text содержит это:

[ -r /etc/lsb-release ] && . /etc/lsb-release

if [ -z "$DISTRIB_RELEASE" ] && [ -x /usr/bin/lsb_release ]; then
    # Fall back to using the very slow lsb_release utility
    DISTRIB_RELEASE=$(lsb_release -sr)
fi

URL="https://help.ubuntu.com/"
if uname -r | grep -qs "\-server"; then
    URL="https://help.ubuntu.com/$DISTRIB_RELEASE/serverguide/C"
fi

printf "\n * Documentation:  %s\n" "$URL"

Это будет компенсировать часть MOTD до No mail., Но откуда остальные?

4 ответа

Решение

MOTD может быть напечатан sshdили PAM. Возможно, что оба делают это.

Проверьте свои /etc/ssh/sshd_config для следующих:

PrintMotd yes

Если эта строка отсутствует, возможно, по умолчанию yes (хотя Debian/Ubuntu изменить значение по умолчанию на no).

Проверьте свою конфигурацию PAM в /etc/pam.d/ для следующих:

session    optional     pam_motd.so

Попробуйте отключить их по очереди, чтобы увидеть, что изменится.

Если вы используете Ubuntu, вы можете попробовать:

sudo nano /etc/ssh/sshd_config

и проверить, чтобы увидеть PrintMotd а также UsePam оба установлены в истину, это был случай для меня.

Примечание: следуя вышесказанному, вы можете сделать sudo service ssh restart и вы должны увидеть только один Motd при входе в систему.

На сервере Ubuntu 22.04 это произошло при установке пакета update-motd. Удаление не помогло.

Кажется, что динамическая функциональность pam во время входа в систему создает/run/motd.dynamicи update-motd создает , а затем оба печатаются при входе в систему по ssh.

Решением для меня было удалить update-motd и удалить/run/motd:

      sudo apt remove --purge update-motd
sudo rm -f /run/motd

После тестирования на Debian 8:

Именно эта опция в /etc/pam.d/login печатает еще один мод

session    optional   pam_exec.so type=open_session stdout /bin/uname -snrvm
Другие вопросы по тегам