Можно ли игнорировать баннер на SSH, но не от входа

Как мы все знаем, мы можем напечатать баннер /etc/motd или в файле /etc/issue.netТаким образом, каждый пользователь, который входит в систему на машине Linux, получит сообщение баннера, например:

Red Hat Enterprise Linux Server release 6.8 (Santiago)
Kernel \r on an \m
##########################################################################
#                               Welcome to OBAMA house !!!
#                         All connections are monitored and recorded
#                Disconnect IMMEDIATELY if you are not an authorized user!
#
##########################################################################

Проблема в том, что баннер отображается также при удаленном входе через ssh на машины Linux (в отличие от входа в систему локально).

Мы можем просто проигнорировать баннер в ssh, используя флаг -q в дальнейшем:

ssh -q  192.19.23.45 ls /hillary_emails 

На самом деле у нас есть более 100 скриптов Bash и Perl, которые используют sshпоэтому, если мы добавляем баннеры ко всем машинам, нам нужно изменить также сценарии, которые используют ssh команда, добавив флаг -q (бесшумный режим).

Мы предпочитаем не редактировать сценарии по внутренним причинам. Поэтому мой вопрос заключается в том, можно ли изменить конфигурацию клиента Linux таким образом, чтобы баннер отображался только при локальных входах в систему, а не отображался при удаленном входе через ssh?

3 ответа

Решение

Вы можете создать группу и добавить соответствующих пользователей в эту группу:

groupadd nobanner
usermod -a -G nobanner username

Затем вы можете отредактировать /etc/ssh/sshd_config и добавить следующее:

Match Group nobanner
    banner "none"

Затем перезапустите sshd и протестируйте его.

Match   Introduces a conditional block.  If all of the criteria on the Match 
        line are satisfied, the keywords on the following lines override those 
        set in the global section of the config file, until either another Match 
        line or the end of the file.

        The arguments to Match are one or more criteria-pattern pairs.  The 
        available criteria are User, Group, Host, and Address.  The match 
        patterns may consist of single entries or comma-separated lists and may 
        use the wildcard and negation operators described in the PATTERNS 
        section of ssh_config(5).

Думаю вариант SSHD PrintMotd no могу помочь тебе. Добавьте его в /etc/ssh/sshd_config. Док говорит:

PrintMotd
             Specifies whether sshd(8) should print /etc/motd when a user logs in interactively.  (On some systems it is also
             printed by the shell, /etc/profile, or equivalent.)  The default is “yes”.

Сообщение дня не должно отображаться в неинтерактивных сеансах. Например, когда вы бежите ssh 192.19.23.45 ls, то, что неинтерактивно запускает команды, и сообщение дня ("motd") не должно отображаться.

То же самое относится к любым скриптам Bash или Perl (или любым другим), которые используют ssh, Скрипты всегда будут выполнять задачи в неинтерактивном режиме, и сообщение дня не должно отображаться.

Если вы обнаружите обратное в вашей системе, это будет неправильной конфигурацией, которую мы можем попытаться отладить, но это не поведение по умолчанию.

Так что, если ваша главная задача - скрипты, то вам не о чем беспокоиться. Если вы не хотите, чтобы сообщение дня отображалось для пользователей, которые входят в систему удаленно sshЭто другой вопрос, и существующие ответы могут помочь. (Но я считаю этот запрос немного странным: я не понимаю, почему вы не хотите показывать сообщение пользователям (не являющимся сценариями) в их интерактивных удаленных сеансах.)

Другие вопросы по тегам