На своем сервере я создал ключи ssh с помощью ssh-keygen, поставил пароль и оставил все остальное по умолчанию. Файл успешно создан в /home/user/.ssh/. Отлично.
Добавлен открытый ключ в мою учетную запись GitLab. Отлично.
Затем я пошел в каталог, куда я хочу скопировать репозиторий, и сделал git clone с помощью sudo (sudo git clone git@gitlab.com: project / projectname.git) и получил следующий вывод:
git@gitlab.com: В доступе отказано (publickey).
Неустранимый: Не удалось прочитать из удаленного хранилища.
Пожалуйста, убедитесь, что у вас есть правильные права доступа
и хранилище существует.
У меня есть необходимые разрешения и я правильно добавил открытый ключ в свою учетную запись Gitlab - я знаю это, потому что, если я выполняю клон git без ключевого слова sudo, я получаю следующую ошибку:
неустранимо: не удалось создать каталог дерева работ 'имя проекта': в доступе отказано
Это говорит мне, что git clone успешно обращается к репозиторию, он просто не может записать в мой текущий рабочий каталог. (Я прав?)
Чтобы подтвердить вышесказанное, я пошел в свой домашний каталог и выполнил клон git без ключевого слова sudo, и хранилище было успешно скопировано в домашний каталог моего сервера, /home/user/...
Что происходит?
Чтобы обойти это, я просто 'sudo mv' скопировал репозиторий из моего домашнего каталога в мой веб-каталог, где я собирался клонировать.
Я не уверен, что это надежное решение, но оно выполнит свою работу
Я читал в других постах, что некоторые комментаторы говорят, что если я буду использовать 'sudo' перед клонированием, то процесс будет искать ключи rsa в /root/.ssh вместо /home/user/.ssh
Другая информация, которая поможет вам помочь мне:
- подключился к серверу DigitalOcean Ubuntu через ssh, 'ssh user @ ipaddress', ввел пароль rsa
- с использованием GitBash в Windows 10
- пользователь имеет права sudo
- создал ssh-ключи на сервере, используя 'user' с sudo
- ключ ssh - ключ 4096 бит с паролем
Спасибо.