SSH после входа в систему, а затем запретить пользователю использовать учетную запись

Я хочу «заблокировать / ограничить» одну из учетных записей на моем выделенном сервере, но я хочу, чтобы пользователь разрешил вход в систему, а затем я хочу, чтобы сообщение появилось для него (например, в шпаклере), а затем закрыть соединение (так что окно шпатлевки будет вверх, и он сможет его прочитать, но он не может ничего делать / набирать в консоли).

Я помню, что в старые времена я делал что-то подобное на freebsd, но любопытное не может найти никакой полезной информации о том, как подойти к этой проблеме.

Любая помощь?

3
задан 17 April 2017 в 14:22

6 ответов

1. Измените /etc/ssh/sshd_config и добавьте эти директивы внизу:

Match User guest
    Banner /etc/ssh/banner_guest
    DenyUsers guest
Match all
Измените guest с фактическим именем пользователя.

1. Создайте файл баннера: sudo nano /etc/ssh/banner_guest и введите свое сообщение внутри, например:

+------------------+
| Get out of here! |
+------------------+

3. Перезагрузите SSH-сервер:

sudo systemctl restart ssh.service

3.

EDIT:

Обратите внимание, что независимо от приведенного выше примера PubkeyAuthentication доступно, и есть действительный файл /home/guest/.ssh/authorized_keys, который пользователь получит Permission denied (publickey).

Если PasswordAuthentication , пользователю будет предложено несколько раз ввести пароль и, в конце концов, получит Permission denied (password).. Поэтому, если вы хотите еще больше дразнить его (или ее), измените указанные выше директивы следующим образом:

Match User guest
    PasswordAuthentication yes
    PubkeyAuthentication no
    MaxAuthTries 20
    Banner /etc/ssh/banner_guest
    DenyUsers guest
Match all

Для меня самый чистый способ - просто показать сообщение и направить их:

Match User guest
    PasswordAuthentication no
    PubkeyAuthentication no
    MaxAuthTries 1
    Banner /etc/ssh/banner_guest
    DenyUsers guest
Match all

Результат выше будет идентичен результату первого предложения, но сообщение Permission denied (publickey) (Server refused our key) не появится.

2
ответ дан 22 May 2018 в 23:32

Я предполагаю, что вы имеете в виду оболочку /usr/sbin/nologin.

Это намного проще, чем другой ответ, реализующий нечто подобное более сложному. Просто добавьте:

Match User guest ForceCommand /usr/sbin/nologin

И пользователь получит сообщение:

This account is currently not available.

(или другое настроено в /etc/nologin.txt)

2
ответ дан 18 July 2018 в 14:47

Я предполагаю, что вы имеете в виду оболочку /usr/sbin/nologin.

Это намного проще, чем другой ответ, реализующий нечто подобное более сложному. Просто добавьте:

Match User guest ForceCommand /usr/sbin/nologin

И пользователь получит сообщение:

This account is currently not available.

(или другое настроено в /etc/nologin.txt)

2
ответ дан 31 July 2018 в 13:27

Я предполагаю, что вы имеете в виду оболочку /usr/sbin/nologin.

Это намного проще, чем другой ответ, реализующий нечто подобное более сложному. Просто добавьте:

Match User guest ForceCommand /usr/sbin/nologin

И пользователь получит сообщение:

This account is currently not available.

(или другое настроено в /etc/nologin.txt)

2
ответ дан 31 July 2018 в 23:31

Я предполагаю, что вы имеете в виду оболочку /usr/sbin/nologin.

Это намного проще, чем другой ответ, реализующий нечто подобное более сложному. Просто добавьте:

Match User guest
  ForceCommand /usr/sbin/nologin

И пользователь получит сообщение:

This account is currently not available.

(или другое настроено в /etc/nologin.txt)

1
ответ дан 22 May 2018 в 23:32
  • 1
    Привет, Jakuje, добавьте Match all, чтобы ответить на этот вопрос. Эта директива необходима в случае, когда раздел Match User не находится в конце файла конфигурации. – pa4080 17 April 2017 в 22:23
  • 2
    Да. В редких случаях вы можете добавить Match all, но в большинстве случаев рекомендуется записать все блоки Match в конец файла. Это функция уведомления, описанная на страницах руководства и во многих других вопросах, но она не является частью этого вопроса, поэтому я не думаю, что она должна быть написана в каждом фрагменте конфигурации здесь. Но спасибо за предложение. – Jakuje 17 April 2017 в 22:26
  • 3
    Да, у меня это есть! Но это объяснение является частью ответа, который отсутствует. Основным недостатком здесь является то, что когда PuTTY (упомянутый в вопросе) используется с настройками по умолчанию, его окна будут немедленно закрыты, и сообщение не сможет быть прочитано. – pa4080 18 April 2017 в 00:07
  • 4
    Независимо от того, что касается записи, другой интересной опцией является сочетание директив: Banner ... и ForceCommand /usr/lib/openssh/sftp-server. Таким образом, пользователи не смогут войти в систему через SSH, но смогут использовать SFTP, а также получат сообщение. – pa4080 18 April 2017 в 00:07
  • 5
    @SpasSpasov 1) Баннер всегда отображается независимо от успешности аутентификации или нет. 2) Настройка sftp-сервера позволит SFTP-доступ как «побочный эффект», который, конечно, не является преднамеренным, не так ли? Очень печально, что PuTTY обрабатывает его таким образом, но всегда вы можете добавить подсказку / read / sleep после команды nologin, если вы хотите, чтобы PuTTY показывал вам сообщение. – Jakuje 18 April 2017 в 00:15

Я предполагаю, что вы имеете в виду оболочку /usr/sbin/nologin.

Это намного проще, чем другой ответ, реализующий нечто подобное более сложному. Просто добавьте:

Match User guest ForceCommand /usr/sbin/nologin

И пользователь получит сообщение:

This account is currently not available.

(или другое настроено в /etc/nologin.txt)

1
ответ дан 24 July 2018 в 20:28
  • 1
    Привет, Jakuje, добавьте Match all, чтобы ответить на этот вопрос. Эта директива необходима в случае, когда раздел Match User не находится в конце файла конфигурации. – pa4080 17 April 2017 в 22:23
  • 2
    Да. В редких случаях вы можете добавить Match all, но в большинстве случаев рекомендуется записать все блоки Match в конец файла. Это функция уведомления, описанная на страницах руководства и во многих других вопросах, но она не является частью этого вопроса, поэтому я не думаю, что она должна быть написана в каждом фрагменте конфигурации здесь. Но спасибо за предложение. – Jakuje 17 April 2017 в 22:26
  • 3
    Да, у меня это есть! Но это объяснение является частью ответа, который отсутствует. Основным недостатком здесь является то, что когда PuTTY (упомянутый в вопросе) используется с настройками по умолчанию, его окна будут немедленно закрыты, и сообщение не сможет быть прочитано. – pa4080 18 April 2017 в 00:07
  • 4
    Независимо от того, что касается записи, другой интересной опцией является сочетание директив: Banner ... и ForceCommand /usr/lib/openssh/sftp-server. Таким образом, пользователи не смогут войти в систему через SSH, но смогут использовать SFTP, а также получат сообщение. – pa4080 18 April 2017 в 00:07
  • 5
    @SpasSpasov 1) Баннер всегда отображается независимо от успешности аутентификации или нет. 2) Настройка sftp-сервера позволит SFTP-доступ как «побочный эффект», который, конечно, не является преднамеренным, не так ли? Очень печально, что PuTTY обрабатывает его таким образом, но всегда вы можете добавить подсказку / read / sleep после команды nologin, если вы хотите, чтобы PuTTY показывал вам сообщение. – Jakuje 18 April 2017 в 00:15

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

Похожие вопросы: