Вопрос или проблема
Когда я вхожу на свой сервер ubuntu по ssh, единственное сообщение, которое я получаю, это последнее сообщение о входе
Последний вход: Вс Окт 30 18:26:33 2022 с xxx.xxx.xxx.xx
Тем не менее, ранее я получал
Добро пожаловать в Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-1017-raspi aarch64)
* Документация: https://help.ubuntu.com
* Управление: https://landscape.canonical.com
* Поддержка: https://ubuntu.com/advantage
Информация о системе на Вс Окт 30 18:40:05 UTC 2022
Нагрузка системы: 0.03271484375
Использование /: 21.4% из 28.76ГБ
Использование памяти: 5%
Использование подкачки: 0%
Температура: 49.7 C
Процессы: 143
Пользователи в системе: 1
IPv4 адрес для eth0: xxx
IPv6 адрес для eth0: xxx
* Строго изолированный Kubernetes делает edge и IoT безопасными. Узнайте, как MicroK8s
поднял планку для простого, устойчивого и безопасного развертывания K8s кластера.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
0 обновлений могут быть применены немедленно.
который я все еще могу запустить с помощью
sudo run-parts /etc/update-motd.d/
Я не имею представления, как я изменил это поведение. Я просто обновил систему и перезагрузился. Возможно, это было обновление ядра, потому что появилось диалоговое окно, в котором спрашивали, какие службы нужно перезапустить. Я не совсем понял, что это значит, и попытался выбрать каждую службу, но нажатие Enter применяло выбор и не позволяло выбрать службу. Поэтому я подумал, что перезагрузка автоматически перезапустит все службы. Я нашел много тем о том, как отключить motd
, но ни одной о том, как его включить. Я нашел запись PrintMotd no
в /etc/ssh/sshd_config
и изменил на yes
и подумал, что это все. Однако это, похоже, не дало эффекта. По крайней мере, приветственное сообщение все еще не отображается.
Что я могу сделать, чтобы снова включить сообщение?
Вам следует проверить, являются ли файлы в каталоге /etc/update-motd.d исполняемыми. Вы можете проверить это с помощью следующей команды:
ls -l /etc/update-motd.d/
разрешения должны быть -rwxr-xr-x для всех файлов. Если разрешения отличаются, вы можете исправить это с помощью следующей команды:
chmod a+x /etc/update-motd.d/*
Я столкнулся с такой же проблемой после установки новой версии python 3.10 и выбрал эту версию python в качестве версии по умолчанию. Я использовал следующую команду, изменяя версию python с 3.8 на 3.10
sudo update-alternatives --config python3
После чего проблема возникла.
Я думаю, если у вас возникла такая же проблема, как у меня, вы можете её исправить, просто вернув версию python обратно на старую.
Вы можете проверить, является ли это проблемой версии python, используя следующую команду:
run-parts /etc/update-motd.d/
После выполнения вышеуказанной команды я получил следующие предупреждения:
Добро пожаловать в Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-1042-azure x86_64)
* Документация: https://help.ubuntu.com * Управление: https://landscape.canonical.com * Поддержка: https://ubuntu.com/advantage
Информация о системе на Ср Июл 26 03:08:59 UTC 2023
Traceback (последний вызов последний): Файл "/usr/bin/landscape-sysinfo", строка 22, в <module>
run(sys.argv[1:], reactor) Файл "/usr/lib/python3/dist-packages/landscape/sysinfo/deployment.py", строка 115, в run
for plugin in config.get_plugins(): Файл "/usr/lib/python3/dist-packages/landscape/sysinfo/deployment.py", строка 69, в get_plugins
return [namedClass("landscape.sysinfo.%s.%s" Файл "/usr/lib/python3/dist-packages/landscape/sysinfo/deployment.py", строка 69, в <listcomp>
return [namedClass("landscape.sysinfo.%s.%s" Файл "/usr/lib/python3/dist-packages/twisted/python/reflect.py", строка 173, в namedObject
module = namedModule('.'.join(classSplit[:-1])) Файл "/usr/lib/python3/dist-packages/twisted/python/reflect.py", строка 159, в namedModule
topLevel = __import__(name) Файл "/usr/lib/python3/dist-packages/landscape/sysinfo/network.py", строка 4, в <module>
from netifaces import AF_INET, AF_INET6 ModuleNotFoundError: Нет модуля с именем 'netifaces' run-parts: /etc/update-motd.d//50-landscape-sysinfo завершился с кодом возврата 1
* Строго изолированный Kubernetes делает edge и IoT безопасными. Узнайте, как MicroK8s поднял планку для простого, устойчивого и безопасного развертывания K8s кластера.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Расширенное обслуживание безопасности для приложений не включено.
0 обновлений могут быть применены немедленно.
2 дополнительных обновления безопасности могут быть применены с помощью ESM Apps. Узнайте больше о включении службы ESM Apps на https://ubuntu.com/esm
Надеюсь, вышеуказанная информация поможет!
Ответ или решение
Когда при входе на сервер Ubuntu через SSH вы больше не видите приветственное сообщение, а только информацию о последнем входе, это может вызывать беспокойство, особенно если вы привыкли к этой информации. Давайте рассмотрим возможные причины этой проблемы и пути ее решения.
1. Проверка настройки SSH
Первое, что стоит проверить, — это настройка SSH на вашем сервере. Откройте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
Убедитесь, что строка PrintMotd
установлена в значение yes
. Если она была установлена в no
, это могло быть причиной отсутствия приветственного сообщения. После внесения изменений не забудьте перезапустить SSH:
sudo systemctl restart sshd
2. Исполнение скриптов MOTD
Приветственное сообщение в Ubuntu генерируется при помощи скриптов, находящихся в директории /etc/update-motd.d/
. Убедитесь, что все файлы в этой директории имеют разрешение на выполнение. Используйте следующую команду:
ls -l /etc/update-motd.d/
И проверьте, чтобы права были установлены как -rwxr-xr-x
для всех файлов. Если это не так, исправьте права доступа:
sudo chmod a+x /etc/update-motd.d/*
3. Проверка зависимостей
Как вы упомянули, проблема может возникать из-за изменений в версиях Python или зависимостей, связанных со скриптами MOTD. Если вы видите ошибки при ручном запуске скриптов:
run-parts /etc/update-motd.d/
Это может указывать на проблемы с некоторыми скриптами. Например, сообщения об ошибках, связанные с отсутствием модуля Python, могут привести к тому, что скрипт завершится неуспешно и не сгенерирует вывод. В таких случаях:
- Убедитесь, что все необходимые зависимости установлены. Если вы видите ошибку связанного с отсутствием какого-либо модуля, установите его с помощью
pip
или другой системы управления пакетами.
4. Проверка системных обновлений и конфигураций
Если вы недавно обновляли систему, это могло затронуть работу MOTD. Выполните следующие команды для проверки состояния системы и обновлений:
sudo apt update
sudo apt upgrade
Также стоит проверить файл /etc/motd
, так как его содержимое также может быть отображено в приветственном сообщении.
5. Обратная связь и устранение неполадок
Если вы все еще сталкиваетесь с проблемой, стоит проверить системные логи на наличие ошибок, связанных с SSH и MOTD:
sudo journalctl -xe
Это может предоставить дополнительную информацию о возможных конфликтах или ошибках.
Заключение
Если вы следовали всем шагам выше и по-прежнему не получаете приветственное сообщение при входе через SSH, возможно, стоит рассмотреть возможность восстановления первоначальных конфигураций или обратиться к сообществу Ubuntu за дополнительной помощью. В случае если проблема оказалась связана с настроенной вами версией Python, вернитесь к предыдущей версии с помощью команды:
sudo update-alternatives --config python3
Такое тщательное обследование системы и корректировка ее конфигурации должны помочь восстановить функциональность приветственного сообщения.