На SSH-сервере у меня следующая (усеченная) конфигурация:
PubkeyAuthentication yes
PasswordAuthentication yes
На моем клиенте у меня есть пара ключей, и я добавил свой открытый ключ на сервер с помощью:
ssh-copy-id <my-server>
Теперь, если я изменю PasswordAuthentication
возможность no
, единственный способ подключиться к моему SSH-серверу - это проверить ключи, верно?
Затем, если я хочу добавить новый клиент, мне необходимо:
PasswordAuthentication
вариант от уже авторизованного клиента и используйте ssh-copy-id
от нового клиента~/.ssh/authorized_keys
сервера от уже авторизованного клиента.Но мне эти методы довольно скучны.
Вопрос: Есть ли более простой способ добавить новый ключ к ~/.ssh/authorized_keys
файл на сервере?
Вы можете изменить нового пользователя authorized_keys
файл так же, как и любой другой файл в системе. Делать это под учетной записью пользователя не нужно. Подойдет любая учетная запись с правом записи в файл. Т.е. обычно root
аккаунт (или sudo
).
В ssh-copy-id
просто упрощает процесс, создавая для вас все папки и файлы с правильными разрешениями. Делая это вручную, вам нужно убедиться в этом самостоятельно.
По сути, ответ на каждый из ваших вопросов - да. Независимо от того, считаете ли вы этот метод «скучным», это общепринятый способ разрешить доступ новому клиенту.
Еще один возможный способ добавить новый ключ - использовать существующего клиента для копирования и вставки содержимого открытого ключа из нового клиента в ~/.ssh/authorized_keys
файл для данного пользователя на целевой машине - убедитесь, что права и права собственности установлены правильно. Это устраняет необходимость временно разрешать использование паролей для аутентификации (которые должны быть переданы пользователю, пытающемуся ssh-copy-id
операция все равно).