Моя проблема в том, что я не могу нажать или извлечь из GitLab. Тем не менее, я могу клонировать (через HTTP или через SSH). Я получаю эту ошибку, когда пытаюсь нажать:
Разрешено исключение (публикация) фатальное: не удалось прочитать из удаленного репозитория
Из всех потоков, которые я посмотрел, вот что я сделал:
Сейчас я хочу пробить свой компьютер. Если у вас есть представление о том, как решить мою проблему, мы будем очень благодарны.
Я нашел это после обыска. Это будет отлично для меня.
ssh-keygen
.ssh
.id_rsa.pub
. Откройте его в блокноте. Скопируйте весь текст из него.Теперь дайте ему шанс, и это сработает наверняка.
type %userprofile%\.ssh\id_rsa.pub | clip
Шаг 1: Добавлен файл конфигурации в папку ~/.ssh/, которая выглядит как
User git
Hostname gitlab.com
IdentityFile ~/.ssh/id_rsa_gitlab
TCPKeepAlive yes
IdentitiesOnly yes
Шаг 2: просто клонируйте репозиторий git БЕЗ sudo.
убедитесь, что вы не используете sudo git clone [email protected]:project/somethiing.git
, иначе ssh будет выглядеть в /root/.ssh
вместо загруженного вами ключа ~/.ssh/id_rsa
Я думаю, что простое решение состоит в том, чтобы добавить закрытый ключ к агенту аутентификации (если ваш ключ не ~/.ssh/id_rsa
),
ssh-add ~/.ssh/<your private key>
Вы в основном позволяете ssh-agent
позаботиться об этом.
Кроме того, вы можете добавить его навсегда.
.pub
.
В моем случае это была не проблема gitlab, а конфигурация sshd. Сервер ssh не разрешал соединение, кроме списка пользователей. Пользователь git, который подключался удаленно к gitlab, не был в этом списке. Итак, проверьте это прежде всего.
Вы можете проверить конфигурацию вашего ssh-сервера в /etc/ssh/sshd_config
. Если у вас есть строка с опцией AllowUsers
, добавьте к ней git:
AllowUsers user1 user2 user3 git
У меня есть gitlab, работающий с докером, это то, что я сделал, чтобы исправить мою проблему.
Обнаружено, что внутри docker /var/log/gitlab/sshd/current было несколько вхождений сообщения:
Отказано в аутентификации: плохое владение или режимы для файла /var/opt/gitlab/.ssh/authorized_keys
После чего я изменил право собственности на этот файл с 99: пользователи на git: пользователи с помощью:
chown git: users authorized_keys
Подойдите к терминалу и снова сгенерируйте ключ ssh. Наберите ssh-keygen
. Он спросит вас, где вы хотите сохранить его, введите путь.
Затем скопируйте открытый ключ на платформу gitlabs. Обычно начинается с ssh-rsa.
Я добавил свой ~/.ssh/id_rsa.pub
в список известных ключей SSH в настройках GitLab https://gitlab.com/profile/keys. Это решило проблему для меня. :-)
если вы в Linux или Macox, просто попробуйте это в терминале:
ssh-add -l
если ничего не возвращается, попробуйте это:
ssh-add
он должен создать идентичность в ~/.ssh/id_rsa
после повторной попытки:
ssh-add -l
он должен вернуть вашу личность, поэтому после повторной попытки клонирования он должен работать
NB: не забудьте добавить свой ключ ssh в свой профиль gitlab
Спасибо
Я решил, как это..
Сгенерировал ключ для Windows с помощью этой команды:
ssh-keygen -t rsa -C "[email protected]" -b 4096
но проблема заключалась в том, что после выполнения этой команды она выдавала строку: "Введите файл, в котором нужно сохранить ключ (/c/Users/xxx/.ssh/id_rsa):" Здесь я давал только имя файла, из-за которого мой ключ был сохранен в моем pwd, а не в указанном месте. Когда я делал "git clone", он предполагал, что ключ находится в папке "/c/Users/xxx/.ssh/id_rsa", но он не был найден, поэтому он выдавал ошибку.
Во время генерации ключа было сгенерировано 2 файла, например "file1" и "file1.pub". Я переименовал оба этих файла в
file1 -> id_rsa
а также
file1.pub -> id_rsa.pub
и поместил оба в "/c/Users/xxx/.ssh/"
ssh -vvvv [email protected]
чтобы увидеть,ssh -vvvv [email protected]
ли он ключ SSH