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

9

Мне нужно ограничить определенных пользователей, чтобы они могли использовать только SSH с использованием ключей SSH, а другие пользователи могли войти в систему, используя ключ или пароль.

пример:

Я хотел бы, чтобы пользователь root мог входить удаленно (через sshd) с помощью ключа, чтобы пароль не принимался (даже если пароль правильный)

и для других пользователей (все в системе) они могут войти, используя ключ и / или пароль

как бы я это сделал?

Alexus
источник

Ответы:

0

Я бы сделал так /etc/sshd/sshd_config, чтобы:

PermitRootLogin without-password

просто для дополнительной безопасности и во избежание блокировки пароля root (он позволил бы root войти в систему только с помощью ключа)

Вместо AllowGroupsэтого я бы использовал вместо AllowUser, так как для меня было бы удобнее добавлять пользователей в группу, а не в нее, sshd_configно это могло бы зависеть от ваших личных предпочтений.

Голаны
источник
13

Я думаю, что вы хотите, чтобы «Match User». Вы используете его для соответствия имени пользователя, а затем делаете отступ для ряда параметров конфигурации, которые применяются именно к этому пользователю.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Я использую это для настройки chroot SFTP-доступа только для клиентов.

Девин Сеартас
источник
Обратите внимание, что не все настройки могут быть записаны в Matchблоке. Смотрите man 5 sshd_configдля деталей.
YNN
2

Настройте 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
Патрик Р
источник
это не то, что я ищу. Допустим, я хочу, чтобы root входил в систему только с помощью ключей, а другие пользователи могли входить в систему с помощью ключа или пароля
alexus
тогда не блокируйте учетную запись с passwd -l username1
Patrick R