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


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

пример:

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

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

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


8
2018-02-04 21:15


Источник




Ответы:


Я бы сделал, чтобы установить /etc/sshd/sshd_config так что:

PermitRootLogin without-password

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

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


1
2018-03-04 23:40





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

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Я использую это, чтобы иногда устанавливать доступ к chroot SFTP-only для клиентов.


11
2018-03-05 01:13





Настройте 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

2
2018-02-04 21:21



это не то, что я ищу. допустим, я хочу, чтобы root регистрировался только с помощью ключей, а другие пользователи могут регистрироваться с помощью ключа или пароля - alexus
то не блокируйте учетную запись с помощью passwd -l username1 - Patrick R