Аутентификация ключа SSH на стороне сервера

Обычно я выполняю аутентификацию по ssh-ключу следующим образом:

  1. генерирую ключ на клиентском компьютере ( # ssh-keygen -t rsa )
  2. копирую ключ на сервер ( используя ssh-copy-id или другими способами)
  3. доступ к серверу с клиентского ПК.

Я видел, как серверы AWS (веб-серверы Amazon) предоставляют ключ во время создания сервера, который клиент может затем используйте для входа в систему.

Теперь у меня есть сервер, на котором я хочу сгенерировать ключи и передать их своим клиентам. Каждый, у кого есть этот ключ, должен иметь доступ к серверу.

  1. Как я могу этого добиться?
  2. Как мне назвать эти ключи, которые я раздаю клиентам? Это открытый ключ?

Я не понимаю, что такое открытый / закрытый ключ?

4
задан 12 June 2017 в 20:56
2 ответа

Amazon linux использует пару ключей , как и вы, но распределяет закрытый ключ.

Итак, если вы генерируете пользователя на стороне сервера, вы должны, как обычно, добавить общедоступный key на /home/your_user/.ssh/authorized_keys, затем раздайте закрытый ключ своему клиенту.

Вы должны знать о проблемах безопасности, поскольку « закрытые ключи называются закрытыми по какой-то причине. "

4
ответ дан 3 December 2019 в 02:18

Не делайте этого. Если все ваши клиенты используют одну и ту же пару ключей для доступа к серверу, и один из ваших клиентов уходит, вы не можете удалить их доступ, не отключив всех.

По крайней мере, пусть каждый клиент сгенерирует свою собственную пару ключей и отправит вам открытый ключ (который также несколько менее небезопасен, чем вы отправляете им закрытый ключ), затем поместите все открытые ключи в файл authorized_keys сервера. Еще лучше создать для каждого клиента свою собственную учетную запись пользователя на сервере и поместить открытый ключ каждого клиента в файл authorized_keys соответствующей учетной записи пользователя.

18
ответ дан 3 December 2019 в 02:18

Теги

Похожие вопросы