Ограничить S SH -login с publi c -key только для выбранных пользователей - proUbuntu
2 голосов
/ 05 августа 2020

Используя OpenSSH, я включил s sh -login для моей машины Ubuntu 18.04, назовите его Remote, а моя учетная запись r на Remote называется Remote-User. Я также убедился, что вход в систему возможен только с помощью аутентификации publi c -key. Вот фактическое описание проблемы.

У меня две локальные машины, назовите их Local-A и Local-B, и каждая из них имеет одно использование r, назовите их User-A и User-B соответственно. Я хотел бы ограничить доступ к Remote-User@Remote только User-A и User-B и запретить другим пользователям r, независимо от того, был ли добавлен ключ r thei r publi c к .ssh/authorized_keys файл Remote-User@Remote. Я попытался сделать это, добавив строку

AllowUsers User-A User-B

в sshd_config, но я заметил, что User-B имеет s sh доступ к Remote-User@Remote, даже если у меня просто

AllowUsers User-A

Это заставляет меня думать, что любой пользователь r, чей publi c -key был добавлен в файл Remote-User@Remote .ssh/authorized_keys, будет иметь доступ, независимо от любые ограничения, которые я пытаюсь наложить, используя AllowUsers.

. Мне было интересно, есть ли у кого-нибудь предложения о том, как с этим справиться. Bea r, имея в виду, что я плохо разбираюсь в этой области, поэтому я мог пропустить важную информацию. Если да, дайте мне знать, и я буду рад ответить на этот вопрос.

Ответы [ 3 ]

1 голос
/ 11 августа 2020

Параметр AllowUsers в файле /etc/ssh/sshd_config - это именно то, что вам нужно для sh использовать r ограничение доступа через ssh.

См. Справочную страницу fo r sshd_config :

AllowUsers
      This keyword can be followed by a list of user name patterns, separated by spaces.
      If specified, login is allowed only for user names that match one of the patterns.
      Only user names are valid; a numerical user ID is not recognized.  By default, login
      is allowed for all users.  If the pattern takes the form USER@HOST then USER and
      HOST are separately checked, restricting logins to particular users from particular
      hosts.  HOST criteria may additionally contain addresses to match in CIDR
      address/masklen format.  The allow/deny users directives are processed in the
      following order: DenyUsers, AllowUsers.

В порядке r fo r изменения в sshd_config вступили в силу, вам необходимо перезапустить службу sshd с помощью:

$ sudo systemctl restart ssh.service

Если это все еще не работает, проверьте /etc/ssh/sshd_config.d folde r fo r любые дополнительные файлы конфигурации, которые отменяют ваш r AllowUsers оператор.

0 голосов
/ 11 августа 2020

Ключ S SH однозначно определяет использование r. Его можно использовать повторно, но любой, у кого есть закрытый ключ, имеет полный доступ к этому удостоверению.

Попытка добавить дополнительные ограничения будет проблематичной c. Ключ S SH дает гарантию, что владелец r ключа имеет доступ к ключу (т. Е. Пока собственный r поддерживает конфиденциальность ключа, использование ключа i r гарантирует его идентичность r.

Любая другая форма r идентификации использования r, такая как исходный компьютер / IP-адрес для r соединения, не будет иметь такого же уровня гарантии. Другими словами, r эти формы могут быть подделаны / обмануты.

Итак, вот рекомендуемое решение:

  • Выполнить ssh-keygen fo r каждую пользователей, чтобы дать им новый уникальный ключ S SH
  • Заменить старый ключ и избавиться от него
  • Добавить publi c ключ правильного использования r в файл authorized_keys
  • Поддерживать безопасность ключа; ключ - это идентификатор пользователя r; разрешение повторного использования r доступа к ключу дает им возможность предположить, что идентичность по желанию
  • Не пытайтесь обойти проблему с помощью дополнительных настроек S SH, поскольку это маловероятно быть эффективным

Надеюсь, это поможет!

0 голосов
/ 09 августа 2020

Когда вы добавляете несколько ключей publi c в файл .ssh/authorized_keys, любой, у кого есть какой-либо закрытый ключ fo r remote-user, может войти в систему с помощью remote-user.

Лучший и безопасный способ разрешить Только конкретная r использование r должна иметь отдельную учетную запись fo r индивидуальное использование r, а ее индивидуальный ключ publi c должен быть в файле .ssh/authorized_keys. Здесь не следует использовать общий счет Remote-User. Вы можете ограничить пользователей, чтобы разрешить только с помощью клавиши s sh в opens sh. Таким образом, отдельное использование r будет иметь отдельную учетную запись, только он сможет войти в свою учетную запись.

...