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

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

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

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

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

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

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

Мне здесь не хватает теории об открытом / закрытом ключе?

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

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

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

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

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