Как разблокировать учетную запись для авторизации по SSH с открытым ключом, но не для авторизации по паролю?

find выражение будет соответствовать родительскому каталогу также. Необходимо сказать этому только воздействовать на регулярные файлы, если Вы хотите, чтобы это переместило файлы только. Кроме того, необходимо заключить расширения в кавычки.

find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \;
35
28.03.2015, 21:56
5 ответов

Разблокируйте учетную запись и дайте пользователю сложный пароль, поскольку @skoberen предлагает.

Редактировать / etc / ssh / sshd_config и убедитесь, что у вас есть:

PasswordAuthentication no

Убедитесь, что строка не прокомментирована ( # в начале) и сохранить файл. Наконец, перезапустите службу SSHD .

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

Если вам нужно сделать это только для одного (или небольшого числа) пользователей, покинуть PasswareAuthicaticatic включено и вместо этого используйте Match User :

Match User miro, alice, bob
    PasswordAuthentication no

место в нижней части Файл, так как он действителен до следующего Match команда или EOF.

Вы также можете использовать Match Group <имя группы> или отрицание или отрицание Match User! Bloggs

Как вы упоминаете в комментариях, вы также можете перевернуть его, чтобы аутентификация пароля отключена В основной части конфигурации и используйте Match утверждения , чтобы включить его для нескольких пользователей:

PasswordAuthentication no
.
.
.
Match <lame user>
    PasswordAuthentication yes
16
27.01.2020, 19:36

Разблокируйте учетную запись и измените пароль в какую-то случайную строку

-2
27.01.2020, 19:36

Все, что вы делаете, не оставляйте учетную запись в штате, оставленном Passwd -U , с пустым полем пароля: что позволяет входить в систему, не входя в пароль (кроме над SSH, потому что SSH отказывается этим).

Измените учетную запись, чтобы не иметь пароля, но будьте разблокированы. Учетная запись не имеет пароля, если пароль HASH в базе паролей не является хэш какой-либо строки. Традиционно односимая строка, такая как * или ! используется для этого.

Заблокированные учетные записи также используют специальный маркер в поле «Пароль», который приведет к тому, что строка не является хеш-хешей любой строки. Маркер зависит от системной системы. На Linux The Command Make отмечает заблокированные пароли, надевая ! В начале и OpenSSH относится к учетной записи как заблокировано, если поле начинается с ! . Другие варианты UNIX, как правило, используют аналогичные, но не одинаковые механизмы, поэтому позаботьтесь о том, если ваша база данных паролей совместно используется между гетерогенной сетью.

В Linux вы можете отключить доступ на основе пароля к учетной записи при разрешении доступа SSH (с какой-либо другой методом аутентификации, как правило, ключевой парой) с

usermod -p '*' username

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

Если вы хотите, вы можете вместо этого можно настроить SSH, чтобы отказаться от аутентификации пароля, независимо от того, имеет ли учетную запись паролем. Вам все равно нужно будет организовать SSH, чтобы не учитывать учетную запись, которая будет заблокирована, поэтому, например, на Linux, вам нужно удалить ! Из поля пароля (но не сделайте поле пустой - установите его на * , как объяснено выше). Чтобы отключить аутентификацию пароля для SSH, добавить PasswordAuthicentication Директива / etc / sshd_config или / etc / ssh / sshd_config (в зависимости от того, что в зависимости от вашей системы). Используйте совпадение блока , чтобы сделать эту директиву только к конкретному пользователю; Матч Блоки должны появиться

…
Match User username
    PasswordAuthentication no
43
27.01.2020, 19:36

Вам не нужно включать или устанавливать пароли, и вам действительно не нужно, если вы уже используете надежные ключи. Просто повторно заблокируйте свою учетную запись (sudo passwd -l username) из существующего сеанса и исправьте конфигурацию SSH.

Причина, по которой это произошло, вероятно, связана с тем, что вы изменили одну из настроек демона SSH по умолчанию (в / etc / ssh / sshd_config).

Измените это в / etc / ssh / sshd_config и перезапустите SSH:

UsePAM yes

В общем, если у вас нет действительно веских причин для отключения PAM, я рекомендую оставить его включенным; включение PAM в SSH позволит вам по-прежнему входить в систему, даже если пароль удален. Что бы вы ни делали, не устанавливайте пустой пароль или что-то подобное ... блокировка поля пароля не обязательно означает блокировку всей вашей учетной записи.

Совет при использовании SSH: держите другой сеанс открытым (в другом окне) всякий раз, когда вносите изменения в конфигурацию SSH, а затем проверьте, можете ли вы войти в систему; если вы случайно нарушите свой доступ, воспользуйтесь текущим сеансом, чтобы исправить это.

(Отказ от ответственности: я работаю в Userify , который предоставляет программное обеспечение для управления ключами SSH.)

10
27.01.2020, 19:36

У меня была эта проблема на CentOS 7. Я обычный пользователь Linux на основе Debian -, поэтому я был как рыба в воде. Я заметил, что на некоторых серверах это работало, а на одном — нет. Audit.log ничего полезного не сказал, и secure.log тоже ничего не дал. Я обнаружил, что единственная реальная разница заключалась в некоторых различиях контекста безопасности в файлах и каталогах между теми, которые работали, и теми, которые не работали. Получите безопасность с помощью

sudo ls -laZ <user-home>/.ssh

в каталоге (Я предполагаю множество значений по умолчанию в конфигурации sshd _).

Вы должны увидеть атрибуты ssh_home_tи user_home_t. Если вы этого не сделаете, используйте команду chcon, чтобы добавить отсутствующие атрибуты.

Например

home="$(getent passwd <user> | cut -d: -f6)"
sudo chcon -R unconfined_u:object_r:ssh_home_t:s0 "$home".ssh
sudo chcon unconfined_u:object_r:user_home_t:s0 "$home"

В моем случае я подозреваю, что пользователь был создан нестандартным способом. Его домом был каталог в /var/lib.

Подробнее в:https://www.linuxquestions.org/questions/linux-security-4/selinux-preventing-ssh-login-with-~-ssh-authorized_keys-4175469538/

0
27.01.2020, 19:36

Теги

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