git: घातक: दूरस्थ रिपॉजिटरी से नहीं पढ़ सकता है


356

मैं अपनी साइट को प्रबंधित करने के लिए http://danielmiessler.com/study/git/#website के साथ git सेट करने का प्रयास कर रहा हूं।

मुझे निर्देशों में अंतिम चरण की जानकारी मिली है: git push website + master: refs / heads / master

मैं win7 में git ming32 कमांड लाइन का उपयोग करके काम कर रहा हूं

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

यहां एक समस्या यह हो सकती है कि कार्यक्रम Bill@***.com की तलाश में है। जब मैं अपनी साइट पर ssh के माध्यम से जुड़ता हूं तो मेरे पास एक अलग उपयोगकर्ता नाम होता है (जो 'एबीसी' कहता है)। तो शायद यह abc@***.com होना चाहिए। यदि हां, तो मुझे नहीं पता कि इसे कैसे बदलना है या यदि मैं किसी अन्य के तहत धक्का दे सकता हूं


1
मेरे पास एक ही मुद्दा था, कभी-कभी यह त्रुटि तब होती है जब गिट सर्वर पहुंच योग्य नहीं होता है या "आंतरिक सर्वर त्रुटि" जैसा कुछ होता है।
मोर्टेजा ज़ियाई

2
पहले कृपया .git/configफ़ाइल देखें और देखें कि सब कुछ क्रम में है। इसमें मेरे लिए गलत सेट-यूरल और मूल मूल्य थे।
मिश्रणदेव

शायद यह इस मुद्दे को हल करेगा: help.github.com/articles/connecting-to-github-with-ssh
लड़के Avraham


क्या आप मुझे .it / config का सही क्रम दिखा सकते हैं और .ssh / config का भी ... coz i'm उलझन में है।
गुमराह

जवाबों:


134

आप उस उपयोगकर्ता नाम को निर्दिष्ट कर सकते हैं जिसे एसएसएच को आपके रिमोट के यूआरएल के हिस्से के रूप में दूरस्थ प्रणाली को भेजना चाहिए। @रिमोट होस्टनाम से पहले यूजरनेम, उसके बाद यूजरनेम डालें ।

git remote set-url website abc@***.com:path/to/repo

3
पुनश्च, वहाँ एक तरीका है में पासवर्ड जोड़ने के लिए तो मैं इसे टाइप करने के लिए रखने के लिए नहीं है?
LDN

15
.git/configदूरस्थ url पैरामीटर वाली फ़ाइल को संपादित करें
Sayanee

@ user61629: मुझे पता है कि मुझे पार्टी में देरी हो रही है, लेकिन आपको पासवर्ड के बजाय निजी / सार्वजनिक कुंजी जोड़े का उपयोग करने पर विचार करना चाहिए।
code_dredd

कौन सा उपयोगकर्ता नाम? कंप्यूटर उपयोगकर्ता नाम या github उपयोगकर्ता नाम?
एजेंट ज़ेबरा

11
Github के लिए, आप हमेशा उपयोगकर्ता नाम का उपयोग करें git। उदाहरण: git@github.com:mayoff/uiimage-from-animated-gif.gitGithub आपकी पहचान को देखकर यह बताता है कि आप किस SSH कुंजी को भेजते हैं।
लूट मय

189

आपकी ssh कुंजी सबसे अधिक संभावना ssh एजेंट से हटा दी गई थी

ssh-add ~/.ssh/id_rsa

जहां id_rsa git repo से जुड़ी एक ssh कुंजी है


7
यह मेरे लिए काम किया! मैंने अपनी ~ / .shsh / config फाइल को अलग-अलग होस्ट के लिए अलग-अलग कुंजी का उपयोग करने के लिए कॉन्फ़िगर करने की कोशिश में एक लंबा समय बिताया, सोचा कि यह फ़ाइल समस्या थी। अंत में, यह सही मेजबान के लिए सही कुंजी का उपयोग कर रहा होगा, लेकिन उस कुंजी को "हटा दिया गया" था। तो ssh-add ~/.ssh/theKeyInQuestionमुझे वापस मिल गया और इस रेपो के साथ चल रहा था, पता नहीं था कि क्या हटाया गया था, या "हटा दिया गया" का मतलब क्या है, लेकिन कम से कम मैं फिर से प्रमाणित करने में सक्षम था। प्रमाणीकरण के मुद्दों से निपटने के महीनों के बाद भी SSH मेरे लिए कुल रहस्य है। ssh एजेंट मुद्दों के बारे में पता करने के लिए एक और बात कर रहे हैं!
एलेक्स बोल्बैक

बहुत बहुत धन्यवाद .. यह आखिरकार मेरे GitLab खाते में SSH कुंजी बनाने, हटाने, आदि की कोशिश करने के बाद मेरे लिए काम किया .... धन्यवाद !!
Bms भारद्वाज

इससे मेरी समस्या हल हो गई। मेरे पास सर्वर पर पहले से ही नई जेनरेट की गई ssh कुंजी है। इस कुंजी को जोड़ने की आवश्यकता है !!
काशन

1
इसने मेरे लिए इसे हल किया, मुझे समझ नहीं आया कि क्यों .. यह काम करता था और अचानक नहीं, क्या एक ऐसी प्रक्रिया है जो एजेंट से चाबी निकालती है, क्या यह दुर्घटना पर हो सकता है?
मिगुएल स्टीवंस

क्यों होता है? दिन भर काम किया लेकिन शाम को काम करना बंद कर दिया। इस जवाब ने मदद की।
एंड्रे सेमकिन

130

सुनिश्चित करें कि आपके पास सही url है .git/config

url = git@github.com:username/repo.git

यदि यह आपका पहला धक्का है, तो आपको सही अपस्ट्रीम स्थापित करने की आवश्यकता होगी

$ git push -u origin master

आप जाँच सकते हैं कि किस कुंजी का उपयोग किया जाता है:

$ ssh -vvv git@github.com

उत्तर में कुछ इस तरह होना चाहिए:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

इसके अलावा ~/.ssh/config, ssh के लिए नियमों को परिभाषित करना संभव है , उदाहरण के आधार पर उपनाम:

   Host github
      HostName github.com 
      User git
      IdentityFile "~/.ssh/id_rsa"

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

आप अलग-अलग बंदरगाहों से कनेक्ट कर सकते हैं, प्रत्येक उपनाम के लिए अलग-अलग उपयोगकर्ता नाम आदि का उपयोग कर सकते हैं।


1
धन्यवाद!! किसी समय जब मैंने अपना रेपो क्लोन किया urlथा , तब https://github.com/user/repo.git(बिना git@github.com) सेट किया गया था और इसलिए इसने मेरी एसएसएच कुंजी का उपयोग करने से इनकार कर दिया। शायद यह इसलिए है क्योंकि मैंने मूल रूप से विंडोज के लिए जीथब का उपयोग करके इसे क्लोन किया था (
जेडीडजा

मैं परिवर्तन करने के लिए लिया है url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gitकरने के लिए url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gitऔर इसे फिर से काम किया
राफेल Bossek

लानत है, तुम कमाल हो। मैंने कई अन्य समाधानों की कोशिश की। मेरा url था https: as::
agrublev

-vvvसंकेत मेरे लिए मददगार था। अब मैं देख रहा हूं कि यह "XXX.XXX.XXX.X पोर्ट 22 द्वारा बंद किया गया कनेक्शन" कह रहा है।
रयान

आह, DeployHQ का कहना है "बिटबकेट वर्तमान में मामूली सेवा समस्याओं का सामना कर रहा है। कृपया अधिक जानकारी के लिए उनके स्टेटस पेज को देखें। status.bitbucket.org " बिंगो।
रयान

123

मैं थोड़ी देर पहले एक ही मुद्दे का सामना कर रहा था ...

मेरी .it / config थी

url = git@github.com:manishnakar/polymer-demo.git

मैंने इसे बदल दिया

url = https://github.com/manishnakar/polymer-demo.git 

और यह अब काम करता है :)


8
यह कैसे उच्च स्थान पर है? git @ github मेरे लिए पूरी तरह से काम नहीं करता है
hlitz

3
यदि रेपो मालिक ने sshचाबियाँ नहीं बनाई हैं, तो आपके पास यह समस्या होगी। संकेत के रूप में तय httpsइसके बजाय का उपयोग करने के लिए है, या रेपो मालिक की स्थापना की हैssh
रयानरॉड

@smileham यह ssh आधारित डेटा से एक https प्रोटोकॉल के लिए रेपो के साथ सुदूर लिंक को स्विच करता है (यदि आवश्यक हो तो usr / pwd के लिए संकेत देगा)
विंसेंट चालमेल

यह सही उत्तर है, इसने मेरे लिए तुरंत काम किया।
किंग्स्टन फॉर्च्यून

जो किसी को भी git remote set-url ...मेरे जैसा गलत मिला या जो मूर्खता से उनके उपयोगकर्ता नाम में एक बिग केस वर्णमाला है (जैसे PeDroro मेरे जैसे!) का पालन करना चाहिए। यह काम किया :)
पे ड्रो

23

के साथ GIT_SSH पर्यावरण चर को हटाने का प्रयास करें unset GIT_SSH। यह मेरी समस्या का कारण था।


1
काम करता है .. मुझे आश्चर्य है कि मैं कहाँ से :) GIT_SSH वातावरण चर मिल गया
StrangeLoop

1
विंडोज़ के लिए उन्नत विकल्प मेनू से GIT_SSH पर्यावरण चर निकालें। मेरे लिए काम किया।
SplinterCell

कैसे? ऐसा करने के लिए मैं टर्मिनल में क्या लिखता हूँ?
एजेंट ज़ेबरा

17

सुनिश्चित करें कि ssh- एजेंट आपके टर्मिनल पर निम्नलिखित कमांड निष्पादित करके चल रहा है:

eval $(ssh-agent -s)

स्रोत: गीथूब प्रलेखन


यह मेरे लिए एक समस्या को भी ठीक करता है। धन्यवाद
अहमद

यह मेरे लिए भी तय है। क्या ऐसा कुछ है जो मुझे यह सुनिश्चित करने के लिए करना चाहिए कि यह भविष्य में चल रहा है? जैसे इसे मेरी .zshrcफ़ाइल में प्रविष्टि के रूप में रखा गया है ?
ब्रैडी डॉवलिंग

14

यह आमतौर पर SSH कुंजी के रिमोट के साथ मेल नहीं खाने के कारण होता है।

समाधान:

  1. टर्मिनल पर जाएं और अपनी ईमेल आईडी से निम्न कमांड (मैक, लिनक्स) टाइप करें।

    ssh-keygen -t rsa -C "you@email.com"

  2. शब्द ssh से शुरू होने वाले कमांड का उपयोग करके उत्पन्न कुंजी की प्रतिलिपि बनाएँ।

    बिल्ली ~ /। ssh / id_rsa.pub

  3. इसे अपने रिमोट से संबंधित जीथब, बिटबकेट या गिटलैब में पेस्ट करें।
  4. बचाओ।

9

मुझे भी यही समस्या थी।

इस त्रुटि का मतलब है कि आपने अपना दूरस्थ URL स्थान निर्दिष्ट नहीं किया है जिस पर आपका कोड धक्का देगा।

आप 2 (मुख्य रूप से) तरीके से दूरस्थ URL सेट कर सकते हैं:

  1. Git Bash पर कमांड निष्पादित करने के माध्यम से दूरस्थ URL निर्दिष्ट करें।

    • अपनी परियोजना निर्देशिका पर नेविगेट करें

    • गेट बैश खोलें

    • निष्पादित आदेश:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. दूरस्थ फ़ाइल में दूरस्थ URL प्रत्यक्ष का उल्लेख करें

    • अपनी परियोजना निर्देशिका पर नेविगेट करें

    • .Git फ़ोल्डर में ले जाएँ

    • टेक्स्ट एडिटर में कॉन्फिग फाइल खोलें

    • लाइनों के नीचे कॉपी और पेस्ट करें

      • [remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*

अधिक विस्तृत जानकारी के लिए इस लिंक पर जाएँ ।


8

कुछ शोध करने के बाद आखिरकार मुझे इसके लिए समाधान मिल गया है, आपने plink.exe पथ के लिए एक पर्यावरण चर घोषित किया है। इसलिए यदि आप उस रास्ते को हटा देते हैं, तो गेट बैश को फिर से खोल दें और SSH के माध्यम से क्लोनिंग का प्रयास करें।

इस लिंक का संदर्भ लें

http://sourceforge.net/p/forge/site-support/2959/#204c


7

मेरी भी यही त्रुटि थी। समाधान निम्नलिखित था: मैंने अपने url को सही कर लिया है .git/config। बस HTTPS क्लोन URL से कॉपी किया गया है। यह कुछ इस तरह होगा:

url = https://github.com/*your*git*name*/*your*git*app*.git

इसने काम कर दिया।


अगर मैंने विंडोज़ ओएस के तहत अपनी कॉन्फिग फ़ाइल में इसे लिखा है, तो त्रुटि अलग तरह से उठी, उसने कहा ... "/c/Users/asus/.ssh/config: पंक्ति 5: खराब कॉन्फ़िगरेशन विकल्प: url"
gumuruh

https ओवर ssh का उपयोग करना ठीक है, यह उपयोगकर्ता नाम और पासवर्ड पूछता है
किरण

4

एक और समाधान:

कभी-कभी नेटवर्क समस्याओं के कारण मेरे साथ ऐसा होता है। मैं रूट समस्या को पूरी तरह से नहीं समझता, लेकिन एक अलग उप-नेटवर्क पर स्विच करना या वीपीएन का उपयोग करना इसे हल करता है


बिल्कुल मेरा मामला। काश मैंने यह टिप्पणी पढ़ी होती। डिबगिंग के कुछ घंटों के बाद, वीपीएन का उपयोग करने के बारे में सोचा और इसने काम किया।
चैतन्य बापट

4

यदि आप Gitlab का उपयोग करते हैं, तो इससे पहले कि आप खींचने या धक्का देने का प्रयास करने से पहले Gitlab को लॉग इन करने और स्वीकार करने की आवश्यकता हो।


क्यों होता है पतन? उसी दिन मैंने अपनी समस्या हल कर ली, इसका नए गिटलैब की शर्तों के साथ कुछ करना था।
मार्सेलो अगिमोवेल

कृपया अपने डाउनवोट को हटा दें। यह एक मान्य उत्तर है, यह गिटलैब की शर्तों को बदलने के बाद खुश है। Gitlab नई शर्तों को स्वीकार करने से समस्या हल हो सकती है।
मार्सेलो एग्मोवेल

3

आपकी .it / config फाइल में

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

और बस

git push YOUR_APP_NAME master:master 

3

मेरे मामले में मैं एक पासवर्ड के साथ ssh कुंजी का उपयोग कर रहा था github के साथ प्रमाणित करने के लिए। मैंने विंडोज में (केवल सिगविन में) ठीक से पेजेंट सेट नहीं किया था। अनुपस्थित चरण git_ssh पर्यावरण चर को plink.exe पर इंगित करते थे। इसके अलावा, आपको github.com को पलक ज्ञात_होस्ट में लाना होगा।

   plink github.com
   y
   <then ctrl-c>

उम्मीद है की यह मदद करेगा!

मुझे यकीन है कि काश intellij ने मुझे अधिक उपयोगी त्रुटि दी होगी, या बेहतर अभी तक मुझे ssh कुंजी पासवर्ड टाइप करने के लिए कहा था।


3

मेरे पास Bitbucket के लिए ssh एजेंट में दाईं ओर एक गलत ssh निजी कुंजी थी।

पहले सभी चाबियाँ हटा दी गईं

ssh-add -D

फिर सिर्फ सही कुंजी जोड़ा।

ssh-add ~/.ssh/id_rsa

2

मेरे मामले के लिए, मैं कार्यालय में कॉर्पोरेट नेटवर्क (इंटरनेट कनेक्शन के बिना) का उपयोग कर रहा हूं। Github से कोड खींचने के लिए, मैंने gitbash में https प्रॉक्सी सेट किया और फिर कोड खींचने के लिए ssh के बजाय https का उपयोग किया, यह ठीक काम करता है। हालाँकि जब पुश कोड आता है, तो https प्रॉक्सी काम नहीं करेगा। तो या तो इंटरनेट नेटवर्क पर स्विच करें (इंटरनेट कनेक्शन के साथ) या सेट ssh प्रॉक्सी समस्या को हल कर सकता है।


2

वास्तव में, मैंने इसे Win7 पर काम करने के लिए बहुत सी चीजों की कोशिश की, क्योंकि एसएसएच एक्सट्रन फ्रॉन देशी को बनाने के लिए इसे और पीछे की ओर और उसी त्रुटि को बदल दिया। संयोग से, मैं इसे ".it / config" फ़ाइल में HTTPS के रूप में परिवर्तित करता हूँ:

[remote "origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/origin/*

और यह अंत में काम किया। तो शायद यह आपके लिए भी काम कर सके।


2

मेरे पास एक ही मुद्दा था और थोड़ी देर बाद मैंने देखा कि मैं रूट यूजर (sudo -s के साथ) हूं। किसी के लिए यह मदद हो सकती है।


मैं इस बात की पुष्टि करता हूं कि जब आपने अपनी मशीन पर और BitBucket पर ssh कुंजी सेट की है, तब भी यह त्रुटि प्रदर्शित करेगा यदि आप 'sudo' कमांड के साथ 'git pull' को निष्पादित करने का प्रयास करते हैं।
इलेक्ट्रोबुधा

2

यदि "git पुश ओरिजिनल मास्टर" कमांड u के बाद एरर देखते हैं "रिमोट रिपॉजिटरी से नहीं पढ़ सकता है" तो इसे आज़माएं

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 

2

मेरे पास पूरी तरह से ठीक काम कर रहा था और अचानक मुझे वह त्रुटि मिली जब मैंने मास्टर को धक्का देने की कोशिश की। जैसा कि मुझे पता चला, यह इसलिए था कि रिपॉजिटरी होस्ट को समस्या थी।

यदि आप GitHub या Bitbucket का उपयोग कर रहे हैं, तो आप आसानी से स्थिति की जांच कर सकते हैं

https://status.github.com/messages या https://status.bitbucket.org/

यहां छवि विवरण दर्ज करें


1

मेरे पास एक ही त्रुटि थी, जिसने मुझे इस जवाब में लाया कि मेरी मदद नहीं की। मैं पहली बार एक NTFS स्थान पर नज़र रखने के लिए नीचे दिए गए आदेशों का उपयोग करके एक नया "नंगे" भंडार बनाने की कोशिश कर रहा था:

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

मेरी समस्या एनटीएफएस स्थान में फॉरवर्ड स्लैश के बजाय बैक स्लैश का उपयोग करने के लिए निकली, जब (नई) ट्रैक अपस्ट्रीम शाखा को सेट करने के लिए मूल को जोड़ने की कोशिश की जा रही थी।

मुझे मूल का उपयोग करके निकालना पड़ा:

git remote rm origin

फिर अपेक्षित फ़ॉरवर्ड स्लैश का उपयोग करके फिर से मूल जोड़ें

git remote add origin //myserver.mycompany.local/myrepository.git

आशा है कि यह भविष्य में किसी की मदद करेगा।


1

कंप्यूटर बदलने के बाद मुझे यह त्रुटि मिली है। मैं Bitbucket के साथ SourceTree का उपयोग कर रहा हूं।

इसलिए मुझे वेब पर अपने बिटबकेट खाते से कनेक्ट करते समय, नए कंप्यूटर पर, सोर्सब्री द्वारा उत्पन्न एसएसएच कुंजी को नए कंप्यूटर पर, बिटबकेट सेटिंग्स> सुरक्षा> एसएसएच कुंजी में जोड़ना पड़ता था।


1

मैंने टर्मिनल को पुनरारंभ करके (एक नई विंडो / टैब खोलें) इस मुद्दे को हल किया ।

तो अगर आप वास्तव में अंतर्निहित समस्या को समझना नहीं चाहते / चाहते हैं, तो परीक्षण विधि गहरी खुदाई से पहले एक कोशिश के लायक है :)


0

एक निजी रिमोट रेपो पर यह समस्या रखने वालों के लिए। सुनिश्चित करें कि आपने रिमोट सर्वर पर Xcode समझौते को स्वीकार कर लिया है: इस फिक्स का पता लगाने में हमें सप्ताह लग गए

कमांड लाइन से इस कमांड का उपयोग करें: sudo xcodebuild -license


0

मैं बस यह साझा करना चाहता था कि मुझे इसके लिए एक आसान निर्धारण मिला:

पहुंच अस्वीकृत। घातक: दूरस्थ भंडार से नहीं पढ़ सकता था। कृपया सुनिश्चित करें कि आपके पास सही एक्सेस अधिकार हैं और रिपॉजिटरी मौजूद है।

सिर्फ गिटलैब से लॉगआउट करें और फिर से लॉगिन करें। समस्याओं को तब ठीक किया जाना चाहिए।


0

पोटीन / पेजेंट का उपयोग करते समय, सुनिश्चित करें कि आप पेजेंट में सही SSH कुंजी जोड़ना नहीं भूले, अन्यथा यह त्रुटि दिखाई देती है। ओह




0

यदि आपको अभी भी वही त्रुटि मिल रही है, तो कृपया सुनिश्चित करें कि git सेटिंग्स में-> ssh टैब-> ssh क्लाइंट का उपयोग करने के लिए ओपनएसएसएच सेट किया गया हैयहां छवि विवरण दर्ज करें


0

मेरे अनुभव के अनुसार, इस समस्या का एक कारण यह है कि आपके पास एक अस्थिर इंटरनेट कनेक्शन है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.