На сервере 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
).