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