Нужен ли мне личный ssh ключ, хранящийся на моем сервере, чтобы git clone repos пока ssh подключался к серверу?

  1. Я сгенерировал свой ssh-ключ на своем локальном компьютере.

  2. Затем я использовал следующую команду, чтобы скопировать мой открытый ключ на свой сервер: ssh-copy-id имя пользователя @ remote_host . Все прошло гладко.

  3. Я подтвердил, что мой локальный компьютер ~ / .ssh / id_rsa.pub был скопирован на мой сервер по адресу my_user's_home_directory / .ssh / authorized_keys . Других файлов там нет.

  4. Я также скопировал этот же открытый ключ в Gitlab.

  5. Когда я пытаюсь git clone репо на сервер, мне говорят:

git@gitlab.com: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  1. Я достаточно легко могу подключиться к моему серверу по ssh. Но поскольку мой сервер не хранит мой закрытый ключ, мне кажется логичным, что я не смогу выполнить ssh git clone. Какая здесь нормальная процедура? Я могу выполнить обычную загрузку https, это стандартный маршрут?
0
задан 11 December 2020 в 05:55
2 ответа

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

Хотя это кажется безопасным вариантом, делайте это только в том случае, если вы полностью доверяете удаленному серверу (т.е. не включайте это по умолчанию). Перенаправленный ssh-агент может использоваться любым пользователем с тем же удаленным пользователем, что и ваш, или с привилегиями root.

Если вы решите пойти по этому пути, я бы рекомендовал добавить ключи к агенту с помощью ssh-add - c , поэтому вам будет предложено подтвердить при использовании ключа.

2
ответ дан 4 January 2021 в 09:23

git децентрализован. Можно загрузить с Gitlab на ваш компьютер, а затем отправить с вашего ПК на сервер. Клиент ssh - это ваш компьютер для обоих, поэтому ваш закрытый ключ или перенаправленный агент не касается сервера.

Или может иметь несколько ключей ssh. Личный для вашего ПК и другой для сервера. Больше ключей для управления, но можно контролировать и контролировать отдельно стиль учетной записи службы.

Или не используйте git в качестве инструмента развертывания. Создайте пакет или другой архив и установите его, как и другое программное обеспечение.

0
ответ дан 4 January 2021 в 09:23

Теги

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