При входе на сервер с использованием 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