Назад | Перейти на главную страницу

Ограничение SSHd для каждого пользователя

Мне нужно ограничить определенных пользователей, чтобы они могли использовать только 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 но это может зависеть от ваших личных предпочтений.