Мне нужно ограничить определенных пользователей, чтобы они могли использовать только SSH с использованием ключей ssh, а другие пользователи могли входить в систему с помощью ключа или пароля.
пример:
Я бы хотел, чтобы пользователь root мог удаленно входить в систему (через sshd) с помощью ключа, чтобы пароль не принимался (даже если пароль правильный)
а для других пользователей (всех в системе) они могут войти в систему, используя ключ и / или пароль
как бы я это сделал?
Я думаю, что вам нужно "Подобрать пользователя". Вы используете его для сопоставления имени пользователя, а затем делаете отступ для ряда настроек конфигурации, которые применяются конкретно к этому пользователю.
Match User Joe
PasswordAuthentication no
Match User Jane
PasswordAuthentication yes
Иногда я использую это для настройки доступа клиентов только через SFTP с помощью chroot.
Настройте ssh следующим образом:
nano /etc/ssh/sshd_config
AllowUsers username1 username2 username3
Перезапустите SSH
Затем предоставьте ключи тем, от кого вы не хотели бы использовать пароли.
ssh-keygen используется для генерации этой пары ключей для вас. Вот сеанс, в котором создается ваша пара личного / открытого ключей:
#ssh-keygen -t rsa
Команда ssh-keygen -t rsa инициировала создание пары ключей.
Я не ввел кодовую фразу для своей установки (вместо этого была нажата клавиша Enter).
Закрытый ключ был сохранен в .ssh / id_rsa. Этот файл доступен только для чтения и предназначен только для вас. Никто другой не должен видеть содержимое этого файла, поскольку он используется для дешифрования всей корреспонденции, зашифрованной с помощью открытого ключа.
Открытый ключ сохраняется в .ssh / id_rsa.pub.
Затем его содержимое копируется в файл .ssh / authorized_keys системы, к которой вы хотите подключиться по SSH, без запроса пароля.
#scp id_rsa.pub remote system:~/.ssh/authorized_keys
Наконец заблокируйте учетную запись (аутентификация по ключу все еще возможна).
# passwd -l username1
Что бы я сделал, так это установить /etc/sshd/sshd_config
такой, что:
PermitRootLogin without-password
просто для дополнительной безопасности и во избежание блокировки пароля root (это позволит только root войти в систему с помощью ключа)
Вместо этого я бы использовал AllowGroups
вместо того AllowUser
, как по мне, удобнее было бы добавлять пользователей в группу, а не в sshd_config
но это может зависеть от ваших личных предпочтений.