Я сгенерировал свой ssh-ключ на своем локальном компьютере.
Затем я использовал следующую команду, чтобы скопировать мой открытый ключ на свой сервер: ssh-copy-id имя пользователя @ remote_host
. Все прошло гладко.
Я подтвердил, что мой локальный компьютер ~ / .ssh / id_rsa.pub
был скопирован на мой сервер по адресу my_user's_home_directory / .ssh / authorized_keys
. Других файлов там нет.
Я также скопировал этот же открытый ключ в Gitlab.
Когда я пытаюсь 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.
Вы можете использовать ssh -A
для пересылки ваш ssh-агент на удаленный хост, который будет использовать ваши локальные ключи с удаленного сервера без отправки самих ключей.
Хотя это кажется безопасным вариантом, делайте это только в том случае, если вы полностью доверяете удаленному серверу (т.е. не включайте это по умолчанию). Перенаправленный ssh-агент может использоваться любым пользователем с тем же удаленным пользователем, что и ваш, или с привилегиями root.
Если вы решите пойти по этому пути, я бы рекомендовал добавить ключи к агенту с помощью ssh-add - c
, поэтому вам будет предложено подтвердить при использовании ключа.
git децентрализован. Можно загрузить с Gitlab на ваш компьютер, а затем отправить с вашего ПК на сервер. Клиент ssh - это ваш компьютер для обоих, поэтому ваш закрытый ключ или перенаправленный агент не касается сервера.
Или может иметь несколько ключей ssh. Личный для вашего ПК и другой для сервера. Больше ключей для управления, но можно контролировать и контролировать отдельно стиль учетной записи службы.
Или не используйте git в качестве инструмента развертывания. Создайте пакет или другой архив и установите его, как и другое программное обеспечение.