Помилка Git: "Будь ласка, переконайтесь, що у вас є правильні права доступу та існує сховище"


97

Я використовую TortoiseGit у Windows. Коли я намагаюся клонувати з контекстного меню стандартного провідника Windows, я отримую таку помилку:

Переконайтеся, що у вас є правильні права доступу та сховище існує

Точніше, знімок терміналу такий:

клон git.exe --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Клонування в "C: \ Work \ AlfaRobot" ...
Дозвіл відхилено, будь ласка, спробуйте ще раз.
Дозвіл відмовлено. Повторіть спробу.
Дозвіл відмовлено (відкритий ключ, пароль).
fatal: Не вдалося прочитати з віддаленого сховища.

Переконайтесь, що у вас є правильні права доступу
та що сховище існує.

git не вийшов чисто (код виходу 128) (21450 мс @ 19.09.2014 10:36:58)

Що мені робити, щоб git працював належним чином?


1
спробуйте створити ssh кейген і додати
Раджа Саймон

Використання $ ssh-keygen -t rsa -C "youremail@example.com"
командної

Виникла ця помилка після зміни репозиторіїв на адреси git@github.com через відсутність необхідності постійно вводити пароль. Справжньою помилкою, яка спричинила це, було забуття додати мій відкритий ключ на github.
dasWesen

Відповіді:


76

Можливо, ваша URL-адреса git була змінена. Змініть URL-адресу в локальному каталозі, використовуючи наступну команду

git remote set-url origin git@yourGitUrlHere

17
FYI github тепер використовує схему url:git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope ви можете використовувати будь-який протокол або git (ssh), або https, це ваше бажання. github тепер має як протоколи, так gitі https.
Вішну

@Vishnu Що XXXXXXX?
244боя,

@RyPope Перетвори це на відповідь
ishandutta2007

Дуже звичайна помилка була зроблена мною. Я скопіював за допомогою команди clip xclip -sel clip < ~/.ssh/id_rsa.pub, але під час вставлення у вікно введення ключа github, я видалив останній рядок за допомогою backspace, який фактично змінив відкритий ключ. Отже, завжди копіюйте та вставляйте ssh відкритий ключ таким, яким він є, не видаляючи останній новий рядок.
Amreesh Tiagi

62

Ця проблема може бути у вашого ssh-агента, ваш ключ ssh не доданий за допомогою ssh-agent. Вам потрібно застосувати наступні кроки за допомогою терміналу: -

  1. $ eval "$ (ssh-agent -s)"

    Агент pid 5867

  2. $ ssh-add

    Введіть парольну фразу для /home/you/.ssh/id_rsa: [] Додано ідентифікатор: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

тоді воно буде працювати..чері Дж.


11
Все ще виникає помилка при клонуванні:fatal: Could not read from remote repository.
ІгорГанапольський

Дякую, що це спрацювало для мене. Я створив інший ключ, ніж id_rsa за замовчуванням, тому просто потрібно зробити додатково в наведеній вище команді ssh-add -K ~ / .ssh / id_rsa_other_project.
Нітеш,

Так, це взагалі не вирішить жодної проблеми. Додавання вашої ідентифікації до ssh зупиняє лише запити вашого пароля сертифіката щоразу
DMcCallum83

ура. Я не вдався бігти brew update. коли я біг, ssh-addперш ніж запустити команду, вона спрацювала. сподіваюся, я не буду повторювати це постійно.
nyxee

все ще з’являється помилка "Не вдалося перевірити ключ хоста. фатально: Не вдалося прочитати з віддаленого сховища." але додавання відомого вузла , встановлений для мене: stackoverflow.com/questions/15214977 / ...
rickvian

36

Спробуйте використовувати HTTPS замість SSH, беручи клон із GIT, використовуйте цю URL-адресу для take clone, ви можете використовувати Gitbase, Android Studio або будь-який інший інструмент для клонування гілки. введіть тут опис зображення


35

Для мене це було через відсутність ключа SSH на апараті. Перевірте ключ SSH локально:

$ cat ~/.ssh/id_rsa.pub

Це ваш ключ SSH. Додайте його до своїх ключів SSH у сховищі.
В гітлаб іти

налаштування профілю -> Клавіші SSH

і додайте ключ


7
Я додав ключ, як ви згадали, і досі отримую повідомлення про заборону доступу. Будь ласка, допоможіть
Jet

18

Github тепер використовує схему url

git remote set-url origin https://github.com/username/repository.git


9

Ви намагаєтеся клонувати сховище через ssh:, git@arobotdev...і ваші SSH-ключі неправильно встановлені на сервері. Для цього є кілька причин:

  1. Ваш відкритий ключ може бути збережений у файлі санкціонованих_кіїв користувача git
  2. Якщо 1 не відповідає дійсності, Ваш приватний ключ не зберігається у .ssh / папці вашого HOMEDIR.
  3. Дозволи не встановлені належним чином

Якщо всі 3 вище не відповідають дійсності, тоді моїм єдиним висновком може бути спробувати: git@arobotdev:AlfaRobot.git припустивши, що AlfaRobot.git знаходиться у HOMEDIR користувача git, а не всередині папки під назвою git, яка знаходиться в HOMEDIR користувача git.


5

Rsa.pub (тобто згенерований відкритий ключ) потрібно додати на сторінку github >> settings >> ssh keys. Переконайтеся, що ви не додали цей відкритий ключ у ключі розгортання сховища-налаштування >>. Якщо це так, видаліть запис звідси та додайте до згаданого першого місця.

Детально налаштування приватних ключів .

Отже, це спрацює!


3
  1. Перше, що ви можете підтвердити, це підключення до Інтернету. Хоча проблеми з Інтернетом здебільшого говорять про те, що до РЕПО не можна отримати доступ.

  2. Переконайтеся, що ви встановили ssh як локально, так і на своєму github. Подивіться як

  3. Переконайтеся, що ви використовуєте пульт дистанційного керування ssh git. Якщо ви клонували https, просто встановіть URL-адресу на ssh url за допомогою цієї команди gitgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. Якщо ви правильно налаштували ssh, але він просто перестав працювати, зробіть наступне:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Якщо у вас все ще виникає проблема, переконайтеся, що ви не видалили ssh зі свого github. У випадку, коли ssh було видалено з github, ви можете додати його назад. Використовуйте pbcopy < ~/.ssh/id_rsa.pubдля копіювання ключа ssh, а потім перейдіть до налаштування github ssh та додайте його.

Я рекомендую вам завжди використовувати ssh. Для більшості команд, з якими я працював, ви не можете отримати доступ до репо (які в основному є приватними), за винятком того, що використовуєте ssh. Для початківців це може здатися складніше, але згодом це стане вам простіше і безпечніше.


3

У мене була ця проблема, і я виявив, що моя система мала неправильну адресу dns. Перевірте свою мережу та протестуйте за допомогою

ssh -vvv git@bitbucket.org

І прочитайте вихідні повідомлення. Якщо ви бачите "Ви можете використовувати git або hg для підключення до Bitbucket." , все добре.


привіт @Albert, я стикаюся з такою ж проблемою, але для gitlab.com. Як вам вдалося вирішити проблему?
abiratsis

@AlexandrosBiratsis Я замінюю свій dns іншою адресою. Спробуйте opendns або google dns.
Альберт

2

Альтернативною проблемою може бути підключення до Інтернету. Очевидно, можливо, але мені знадобилося кілька хвилин, щоб зрозуміти, що у мене не працює Wi-Fi :)


1
Згідно з повідомленням про помилку, схоже, тут не проблема в Інтернеті.
jbmusso

2

Ось як я вирішую це питання. Я використовував Babun (mintty.exe) в Win7 / 10. Коли я спробував багато згаданих вище рішень, і жодне з них не працює. Я зрозумів, можливо, я просто використав неправильний агент ssh ... Тож я біжу, echo $GIT_SSHщоб дізнатись, це показує шлях доPlink.exe . Що я насправді очікував - OpenSSH.

Отже, я додаю наступний однолінійний ~/.zshrcфайл

Примітка 1: Ви можете виконати його також у babun безпосередньо
Примітка 2: Якщо ви використовуєте bash, тоді це конфігураційний файл.bashrc

export GIT_SSH=$(which ssh)

І це працює!



2

Спробуйте https замість ssh. Виберіть параметр https з домашньої сторінки проекту, з якого копіюєте URL-адресу клонування.


2

Якщо він працював раніше і раптом перестав працювати:

Це питання може бути спричинене тим, що іноді ssh-agentне існує стійкого перезавантаження. Вам слід перевірити, чи ssh-agentдодано ваш ключ:

ssh-add -l -E md5

якщо ви отримуєте вихід на зразок:

The agent has no identities.

це означає, що ssh-agentви втратили ключ. У цьому випадку вам просто потрібно знову додати ідентифікаційний ключ. Щось на зразок:

ssh-add ~/.ssh/git_rsa

Помилка повинна зникнути зараз!


Це сталося зі мною, коли я створив ще один ssh для іншого облікового запису, тому я просто додав пропущені git_rsaдо списку
Іван

1

Це також може статися, якщо ви підключаєтесь до свого сховища git через VPN. Переконайтеся, що ви підключені до мережі VPN, яка використовується для доступу до ресурсів вашої організації.


1

Я стикаюся з цією помилкою під час завантаження проекту в gitlab. Я не клонував з git, а натомість завантажував проект. Для надсилання коду до gitlab у вас є два способи, використовуючи ssh або https. Якщо ви використовуєте https, вам потрібно ввести ім'я користувача та пароль облікового запису gitlab. Для підштовхування коду до git ви можете використовувати наступний.

Вперше натискаючи на Git

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

Параметр -C необов’язковий, він надає коментар у кінці вашого ключа, щоб відрізнити його від інших, якщо у вас декілька. Це створить id_rsa (ваш приватний ключ) та id_rsa.pub (ваш відкритий ключ). Ми передаємо наш відкритий ключ і зберігаємо свій приватний ключ - ну, приватний. Налаштування користувача Gitlab - це місце, де ви б потім додали свій відкритий ключ до свого облікового запису , що дозволить нам нарешті натиснути.

У своєму проекті (Каталог) використовуйте команду нижче

git init

Це перетворює поточний каталог у сховище Git. Це додає підкаталог .git до поточного каталогу і дає можливість розпочати запис редакцій проекту.

Натисніть Використовуючи шлях https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Натисніть Використовуючи шлях ssh

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

- set-upstream: повідомляє git шлях до початку. Якщо Git раніше натиснув на вашу поточну гілку, він запам'ятає, звідки походження

master : це назва гілки, на яку я хочу натиснути при ініціалізації


0

Як і інші відповіді, використання httpsзамість sshбуло рішенням.

Я публікую відповідь, щоб навести конкретний приклад можливого рішення. Я вирішив цю проблему з bitbucket, коли змінив віддалену URL-адресу на HTTPS за допомогою цього командного рядка:

git remote set-url origin <bitbucket_URL>

Після цього я можу натиснути вміст у сховище за допомогою цієї команди:

git push -u origin --all

І тоді я міг також використовувати Sourcetree


0

Дивно, що я отримав цю помилку лише в 1 з багатьох своїх репозиторіїв.

Моя проблема виникла після встановлення нового робочого столу GitHub для Windows, де зберігався попередній старий GitHub для Win, ~/.ssh/github_rsaі ~/.ssh/github_rsa.pubде, як очікує новий GitHub для Win, ~/.ssh/id_rsaрішення просто перейменувало існуючі приватні та відкриті ключі:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Після цього дозвольте мені знову отримати доступ до репо без проблем.


0

використовуйте своє посилання https замість ssh URL

приклад:

git remote add origin  https://gitlab.com/user/folder.git

0

Я використовую Ubuntu

прочитавши багато відповідей, жодна з них не зможе вирішити проблему, навіть якщо я вже додав ключ SSH до свого облікового запису git, і спробуйте перевірити його за допомогою, ssh -T git@gitlab.comі він сказав Welcome <my username>, але він все ще говорив, що я не маю прав доступу. Тоді я виявив, що причина:

Зазвичай, якщо ви не rootкористувач, вам потрібно буде запускати sudoдля кожної команди git.

при бігу sudo git clone <SSH....>(наприклад). він буде виконаний за rootдозволом, але випадково при створенні ключа SSH я запускаю його як звичайний користувач і зберігаю ключ у ~/.ssh/id_rsa, він вирішує абсолютний шлях /home/username/.ssh/id_rsa. А під час роботи sudo git clone ...шукає ключ SSH/root/.ssh/id_rsa

Чому я можу впевнитися в цьому. Щоб побачити, де git шукає ваш ключ SSH. Виконайте наступну команду: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Він покаже вам, де він шукає ваш ключ SSH.

Отже, РЕШЕННЯ, яке я пропоную:

Повторно створіть ключ SSH (дотримуйтесь цієї інструкції ), АЛЕ запустіть sudo suна першому кроці, тоді у вас все буде добре.


0

Додавання ключа ssh працювало для мене. Ви можете створити ключ ssh за допомогою команди ssh-keygen на mac. Ви повинні побачити меню Розгортання клавіш у вашому сховищі> Налаштування, не забудьте встановити прапорець Дозволити доступ до запису.

скріншот меню розгортання ключів -


0

Дуже звичайна помилка була зроблена мною. Я скопіював за допомогою команди clip xclip -sel clip < ~/.ssh/id_rsa.pub, але під час вставлення у вікно введення ключа github, я видалив останній рядок за допомогою backspace, який фактично змінив відкритий ключ.

Отже, завжди копіюйте та вставляйте відкритий ключ ssh таким, яким він є, не видаляючи останній новий рядок.


0

У мене виникли проблеми з VPN компанії, після відключення роботи.

Перевірте з'єднання з github за допомогою команди ssh -vvvT git@github.com


0

Перехід на використання https працює. Спочатку перейдіть на https, а не на клавіші ssh. git віддаленого набору URL-адреси

Потім він запитає ім'я користувача та пароль git.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.