2012-09-06 11 views
5

मैं एक Git भंडार है कि मैं एक पथ इस के समान का उपयोग कर खींच है:GitExtensions + पोटीन SSH के माध्यम से कस्टम बंदरगाह पर

git pull ssh://[email protected]:1234/path/to/repository.git 

जब GitExtensions तो रेपो plink का उपयोग करने से खींचने के लिए कोशिश करता है, यह इस कॉल करता है:

plink -T [email protected]:/path/to/repository.git 

यह समाप्त हो रहा है क्योंकि यह वास्तव में पोर्ट # 22 को पिंग कर रहा है, और # 1234 नहीं।

सही कॉल करने के लिए

plink -T -P 1234 [email protected]:/path/to/repository.git 

होगा अगर मैं अपने ~/.ssh/config में एक उपनाम "hostCom" बनाने के लिए, यह सही ढंग से काम करने लगता है, तो मैं बस कर (# 1234 से कनेक्ट कर रहा) यह:

plink -T [email protected] 

लेकिन जैसे ही मैं गिट रेपो के लिए पथ जोड़ता हूं, यह फिर से # 22 पर जाता है।

मैंने कोशिश की एक और विकल्प पुटी में एक सत्र बनाना है, चलिए इसे "होस्टपट्टी" कहते हैं, और वहां डिफ़ॉल्ट पोर्ट सेट करते हैं। नीचे की रेखा एक जैसी होती है हालांकि: गिट रेपो के पथ को गठबंधन नहीं कर सकता कस्टम बंदरगाह।

मैं उन्हें बनाने के लिए सभी भागों को कैसे जोड़ूं?

और ओपनएसएसएच समस्या से कैसे निपट सकता है, लेकिन पुट्टी नहीं कर सकता? ओपनएसएसएच के साथ एकमात्र समस्या यह है कि यह मुझे प्रत्येक कनेक्शन प्रयास पर निजी कुंजी के लिए पासवर्ड के लिए पूछता रहता है (और मैं पासवर्ड के बिना एक निजी कुंजी बनाना नहीं चाहता)।

उत्तर

9

यह पता चला।

  • रूप में रेखांकित here पोटीन में किसी भी सत्र न बनाएं
  • किसी भी होस्ट उपनाम आप में परिभाषित किया गया हो सकता है का उपयोग न करें ~/.ssh/config
  • :

    यहाँ क्या मुझे नीचे गलत रास्ता मिल गया है

    • जाहिर है यकीन है कि GitExtens बनाने:

    यहाँ कैसे आप यह काम कर रहा मिलता है आयनों पोटीन, नहीं OpenSSH उपयोग करने के लिए

  • यकीन plink.exe बनाने के लिए निर्धारित है (एक GitExtensions के साथ उपलब्ध या विशेष रूप से पोटीन के साथ स्थापित) plink को इंगित करने के रिक्त स्थान
  • अपने env चर% GIT_SSH% सेट के बिना एक रास्ता है। exe (यह डिफ़ॉल्ट रूप से ssh.exe की ओर इशारा करते जा सकता है), यकीन है कि वहाँ कोई अक्षर लोप के बाद से मान उपयोग किया जाएगा "के रूप में-है" कर रहे हैं (यही कारण है कि आप रिक्तियों का उपयोग नहीं कर सकते हैं, जैसा कि ऊपर कहा गया है)
बनाने
c:\>echo %GIT_SSH% 
    C:\tools\PuTTY\plink.exe 
  • खींचने के लिए "पूर्ण" कमांड का उपयोग करें, कोई होस्ट उपनाम जो आपको उपरोक्त उदाहरण में पोर्ट निर्दिष्ट नहीं करने की अनुमति देगा। यदि बंदरगाह गुम है, और केवल एक कोलन है, तो गिट इसे पथ विभाजक के रूप में मानता है, और एसएसएच पोर्ट डिलीमीटर के रूप में (इसलिए वे प्रत्येक काफी खराब काटते हैं)।

    Git क्लोन ssh: //[email protected]: 1234/path// repository.git

लिए आपको लगता है कि Git + वास्तव में चीजों को सही पता लगाने plink करते हैं!

  • था% GIT_SSH% ssh.exe की ओर इशारा किया और पथ सहित बजाय मेजबान उर्फ ​​प्रयोग किया है:

    आप इसे इस तरह से नहीं करते हैं, तो आप इस तरह की समस्याओं के सभी प्रकार हो सकती हैं। पोर्ट

ssh.exe": hostPutty:path: no address associated with name 
    fatal: The remote end hung up unexpectedly 
  • % GIT_SSH% में प्रयुक्त अक्षर लोप
error: cannot spawn "C:\tools\PuTTY\plink.exe": No such file or directory 
    fatal: unable to fork 
0

मेरे लिए, मैं एक त्रुटि है कि होस्ट नाम मौजूद नहीं था हो रही है। इस और अन्य धागे पर सुझावों का एक गुच्छा करने के बाद, मैंने अपने रिमोट यूआरएल की जांच की और वह अपराधी था। आप पोटीन का उपयोग कर रहे हैं, तो सुनिश्चित करें कि यह [email protected] के साथ शुरू होता नहीं https://github

Here's an examplpe of how to check this in git extensions

संबंधित मुद्दे