क्या "एक्सेस अधिकार" एक गिटलैब रिपॉजिटरी तक पहुंच को अवरुद्ध कर सकता है?


14

मैं एक नए क्लीन सर्वर पर gitlab (6.5.1) सेटअप करने का प्रयास कर रहा हूं। काम करने के लिए सब कुछ दिखाई देता है, लेकिन गिट किसी भी परियोजना को आगे बढ़ाने में असमर्थ है। नए बनाए गए प्रोजेक्ट पृष्ठ से आदेशों का पालन करना और ssh के माध्यम से रिमोट को धकेलना:

$ git push -u origin master
fatal: Could not read from remote repository.

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

यह एक काफी सामान्य समस्या है। दुर्भाग्य से ऐसा लगता है कि कई संभावित कारण हैं और उनमें से कोई भी मेल नहीं खाता है। एक पुरानी रिलीज़ और अन्य विभिन्न स्रोतों पर समस्या 3424 से ऑनलाइन मैंने निम्नलिखित सुझावों को देखा और जांचा है:

  • बचे हुए ssh चाबियाँ

    यह एक साफ सेटअप है जिसमें कोई भी बचा नहीं है। मेरी कुंजी अधिकृत कुंजी फ़ाइल में ठीक से जुड़ गई है और केवल एक ही सूचीबद्ध है।

  • डिबग लॉगिंग के साथ चल रहा ssh रूबी पर्यावरण संस्करण से संबंधित त्रुटियों को दर्शाता है।

    खान साफ ​​आता है। SSH डिबग एक सफल कनेक्शन दिखाता है। प्रमाणीकरण हैंडशेकिंग के बारे में सब कुछ सामान्य है, फिर यह आउटपुट का अंत है:

    debug1: Sending command: git-receive-pack 'username/reponame.git'
    debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
    debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
    debug1: channel 0: free: client-session, nchannels 1
    debug1: fd 0 clearing O_NONBLOCK
    debug1: fd 1 clearing O_NONBLOCK
    
  • गिटलैब-शेल पर्यावरण के साथ समस्याएं।

    ऊपर एक ही त्रुटि संदेश के साथ कई अन्य लोगों के विपरीत, मेरी गिट्लाब-शेल चेक स्क्रिप्ट स्वास्थ्य का एक साफ बिल लौटाती है:

    % sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check   
    Check GitLab API access: OK
    Check directories and files: 
            /var/lib/gitlab/repositories: OK
            /var/lib/gitlab/.ssh/authorized_keys: OK
    Test redis-cli executable: redis-cli 2.8.5
    Send ping to redis server: PONG
    
  • रिस्टार्ट {गेंडा, साइडकीक, रेडिस}

    एक या एक से अधिक सेवाओं को पुनः आरंभ करने वाली रिपोर्ट साफ करती हैं कि वे यहां लागू नहीं होती हैं। यह एक आंतरायिक समस्या नहीं है जो डेमन फ़िक्स को दूर कर रही है।

  • रेपो भौतिक रूप से निर्मित नहीं हो रहा है

    लकिन यह है। हर बार पहली बार नंगे गिट रेपो ~gitlab/repositories/username/reponame.gitहर बार बनते हैं और लगता है कि सही अनुमति है।

  • Gitlab- शेल API सर्वर से बात नहीं कर सकता क्योंकि A) DNS समस्याएँ, B) गलत IP / पोर्ट / इंटरफ़ेस बाइंडिंग C) में अनुगामी स्लैश नहीं है / है।

    चेक स्क्रिप्ट का कहना है कि एपीआई एक्सेस ठीक है।

    मैं nginx नहीं चला रहा हूँ, इसलिए डिफ़ॉल्ट IP बाइंडिंग समस्या n / a है।

    मैं दोनों के लिए *:8080और 127.0.0.1:8080मूल्य में सुनने की कोशिश की है unicorn.yml

    इससे परे, मैंने लोकलहोस्ट, 127.0.0.1 के विभिन्न पुनरावृत्तियों और पूरी तरह से योग्य डोमेन नाम (जो DNS हल कर रहा है ठीक है) के साथ और बिना shell.ymlकिसी लाभ के स्लैश का पता लगाने की कोशिश की है। मैंने इसे अपाचे एसएसएल / प्रॉक्सी होस्ट के बजाय पोर्ट 8080 पर पोर्ट गेंडा सर्वर पर सीधे वायरिंग करने की कोशिश की है। कुछ भी फर्क नहीं पड़ता है। मेरा प्रमाणपत्र स्व-हस्ताक्षरित नहीं है और ब्राउज़रों के लिए ठीक काम कर रहा है, लेकिन मैंने self_signed_cert: trueवैसे भी सेटिंग की कोशिश की । कुछ भी तो नहीं।

  • रिपोर्ट किए गए गिट पथ गलत हैं, gitlab उपयोगकर्ता के घर से पूरी तरह से योग्य पथ जोड़ें।

    यह एक कानूनी सुझाव की तरह लगता है, अगर गिटलैब-शेल कुछ बंदर व्यवसाय नहीं कर रहा है, तो पहले से ही इसे ठीक करने के लिए, लेकिन मैंने git remote add origin gitlab@server:username/reponame.git`` git रिमोट ऐड ओरिजिनल gitlab @ सर्वर: रिपॉजिटरी / यूज़रनेम / reponame.git` को बदलने का प्रयास किया। वही त्रुटि।

यह सुझाए गए समाधानों की दीवानी लगती है, लेकिन उनमें से कोई भी सही नहीं लगता है। नोट मैं http पर पुश करने में सक्षम हूं । लॉगिन प्रॉम्प्ट मेरे ldap यूजरनेम और पासवर्ड को स्वीकार करता है और एक पुश स्वीकार करता है। यह केवल SSH का उपयोग करने का प्रयास करने में समस्या है। ssh -T gitlab@serverठीक काम करता है के साथ सिर्फ ssh लॉगिन हिस्सा परीक्षण ।

इस त्रुटि के कारण और क्या हो सकता है?

गीतालाब में इस तरह के मुद्दे पर बहस करने के बारे में कैसे जाना जाता है? वहाँ सब में कुछ भी प्रासंगिक नहीं लगता है ~gitlab/gitlab-shell/gitlab-shell.log। अधिक जानकारीपूर्ण त्रुटि संदेश कहां मिलेगा?


इसका आउटपुट क्या है: "ssh -vv gitlab @ server" ??
DrGkill

@DrGkill कुछ भी दिलचस्प नहीं है (मेरी आँखों के लिए), अपने लिए देखें
कालेब

अपने sshd_config में देखें कि बाह्य लॉगिन के लिए gitlab की अनुमति है या नहीं। मैं 2 संभावित अपराधी कहूंगा: SSH या गिटलैब-शेल। जब gitlab कनेक्ट हो रहा है, तो क्या करता है?
DrGkill

@DrGkill मैंने जाँच की है (और यदि इसे sshd या pam द्वारा बाहरी लॉगिन की अनुमति नहीं थी, तो मैंने आपके द्वारा ऊपर दिखाए गए लॉग को एक सफल प्रमाणीकरण सूचना नहीं दिखाया होगा)। SSH बस ठीक जोड़ रहा है। सर्वर साइड लॉग एक सफल प्रमाणीकरण दिखाते हैं, कि एक सत्र खोला गया था, उपयोगकर्ता को स्थापित करने के बारे में कुछ सिस्टमड सामान, फिर "<रिमोट आईपी>" से डिस्कनेक्ट हो गया और सत्र की सफाई के बारे में कुछ और सामान।
कालेब

जवाबों:


7

मुझे पूरा यकीन है कि इस SSH डिबग संदेश के कारण आपको SSH और सिस्टम के बीच कॉन्फ़िगरेशन की समस्या है:

client_input_channel_req: channel 0 rtype eow@openssh.com reply 0

आपको यह संदेश एक सफल प्रमाणीकरण के तुरंत बाद प्राप्त होता है और बैश से कोई संदेश जिसका अर्थ है कि लॉगिन के बाद कोई कार्यक्रम लॉन्च नहीं किया गया था।

यदि आपके पास gitlab उपयोगकर्ता के लिए सही सेटिंग्स हैं, तो अपनी पासवार्ड फ़ाइल में देखें:

gitlab:x:1011:1012:GitLab,,,:/path/to/gitlab:/bin/bash

सत्यापित करें कि बैश विन्यास फाइल में कोई अजीब बात नहीं है

  • bash.bashrc
  • .profile
  • .bashrc

फिर ऊपर के स्तर तक जाएं: Gitlab-shell सत्यापित करें /path/to/gitlab/.ssh/authorized_keys के नीचे कॉन्फ़िगरेशन है:

command="/path/to/gitlab/gitlab-shell/bin/gitlab-shell key-2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa A...

साथ / path / to / gitlab / gitlab-खोल / bin / gitlab-खोल gitlab उपयोगकर्ता और निष्पादन के स्वामित्व वाले।

आप सुनिश्चित कर सकते हैं कि गिटलैब-शेल पूरी तरह से कमांड लॉन्च करके चालू है:

# /path/to/gitlab-shell/bin/gitlab-shell
Welcome to GitLab, Anonymous!

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

$ ssh gitlab@server
Welcome to GitLab, <your user's full name>!
Connection to <server> closed.

यहां कोई संदेश संभवतः इंगित नहीं करता है कि ssh आपको gitlab से बिल्कुल भी कनेक्ट नहीं कर रहा है।

अंत में, अपने गिटलैब-शेल कॉन्फ़िगरेशन (config.yml) की जांच करें और देखें कि क्या:

http_settings:
    # trailing slash is important
    gitlab_url: "https://remote_server/"
    ca_file: /path/to/webserver/certificate.crt

और आखिरकार :

    self_signed_cert: false

रवींद्र। <head-desk> आप सभी सही रास्ते पर थे। गिटलैब उपयोगकर्ता को सौंपा जा रहा था /bin/false। या तो आर्क पैकेज उस उपयोगकर्ता को जोड़ने के दौरान शेल को सही सेट नहीं करता है या मैंने इसे इस सिस्टम पर ldap प्रमाणीकरण को लागू करने की प्रक्रिया में कहीं तोड़ दिया है। सभी प्रयासों के लिए धन्यवाद।
कालेब

जवाब के लिए ty, मुझे डिबगिंग में मदद की। एक अन्य समस्या यह है कि जब आपके पास ssh कुंजी अग्रेषण सक्षम है, तो आप गलत कुंजी को gitlab पर भेजते हैं जो आपको पहचान नहीं सकती है। जब आप गिटलैब में बैठेंगे तो आपको वेलकम एनॉनिमस भी मिलेगा। बस ssh -a
tommics

मुझे कालेब के समान ही समस्या थी, और मैंने स्वयं भी पाया कि इसे काम करने के लिए / बिन / {गलत, सच्चा, कोलिन} के बजाय एक खोल सेट करने की आवश्यकता है। लेकिन वास्तव में उपयोगकर्ता बिना इंस्टॉलेशन के दौरान बिना शेल के बनाया जाता है (देखें: gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/… ) sudo adduser --disabled-login --gecos 'GitLab' git। तो यह एक खोल के बिना काम करना चाहिए। मैं अभी भी एक और समाधान की तलाश कर रहा हूं।
ह्यूजेंस

0

मुझे भी यही समस्या थी और गुग्लिंग के दिनों के बाद और स्टैक ओवरफ्लो की खोज करने के बाद आखिरकार मुझे अपनी समस्या का पता चला। मैं चाहता था कि यह लिखित रूप में गीतालाब से जुड़ा हो, जब किसी और को भी यही समस्या थी।

मुझे यहाँ अपना समाधान मिला: /programming/17307154/git-bash-push-to-bitbucket-ignores-ssh-key

मैं विंडोज पर हूं और समस्या यह थी कि गिट बैश plink.exe से अपनी SSH कुंजी स्थान प्राप्त करने की कोशिश कर रहा था, जो कि पुट्टी के साथ स्थापित है।

इसका समाधान पर्यावरण चर GIT_SSH को हटाना था। फिर सब कुछ काम कर गया।

उम्मीद है कि इससे वहां किसी को मदद मिलेगी।

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