كيف يمكنني استخدام جيثب خلال قاسية وكلاء?

StackOverflow https://stackoverflow.com/questions/1040089

  •  22-07-2019
  •  | 
  •  

سؤال

وبالنظر إلى القيود التالية ، كيف يمكنني استخدام جيثب من Windows و Unix ؟

  • جميع الوصول إلى الإنترنت يقتصر الوكيل
  • الوكيل فقط يسمح اتصالات على المنفذ 80 و 443
  • ربط الأسلوب هو إلا تمكين 443
  • مصادقة الوكيل مطلوبة (NTLM أو الأساسية)
هل كانت مفيدة؟

المحلول

ترى "باستخدام جيثب خلال الصارمة وكلاء (Windows و Unix)" جيف Tchang (متوفرة سابقا من موقع آخر) ، والذي يتضمن تعليمات لكل من Windows و Unix ، تلخيصها أدناه.

Unix

  1. تحميل بوابة.
  2. تحميل وتثبيت المفتاح.
  3. تحرير أو إنشاء الملف ~/.ssh/config ووضع التالية:

    ProxyCommand /usr/bin/corkscrew proxy.example.com 443 %h %p ~/.ssh/myauth
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
  4. إذا كان كل شيء هو الإعداد بشكل صحيح يجب أن تكون قادرة على تشغيل ssh github.com ونرى

    مرحبا المستخدم!لقد تصديقه بنجاح ، ولكن جيثب لا توفر الوصول قذيفة.
    اتصال github.com مغلقة.

    إذا كان هذا لا يعمل يمكنك تشغيل ssh ssh.github.com والحصول على نفس الشيء.إذا الأمر الأول لم يعمل فهذا يعني أنك تستخدم بروكسي الذي يمنع الاتصال على المنفذ 22.تقريبا لا يوجد وكلاء كتلة الاتصال على المنفذ 443 لأنك تحتاج أن SSL.

ويندوز

  1. تحميل msysgit.بعض الإعدادات:
    • "تشغيل بوابة من ويندوز موجه الأوامر"
    • "استخدام المفتوح" (هذا مهم جدا)
    • اختيار الخط الخاص بك النهايات
  2. تحميل ربط.ج.هذه الأداة تستحق الخاصة بعد لأن معظمهم من البساطة المطلقة.وتعكس أداة مفتوحة المصدر المفتاح و يستخدم نفق من خلال وكلاء.نعم الأداة اسم يسمى حقا "الاتصال.ج." لمستخدمي ويندوز ، قبل تجميعها الثنائية هو متاح.أنا وضعت بلدي connect.exe في C:\Windows\connect.exe.
  3. تقرر ما إذا كنت ترغب في استخدام ويندوز cmd.exe أن تفعل الأشياء أو Cygwin أسلوب شل.أو على حد سواء.
  4. إعداد Cygwin جيت باش قذيفة.

    بالنسبة Cygwin أسلوب شل بدء بوابة رمز تحرير الملف ~/.ssh/config و تأكد من أن الملف ليس له امتداد.وضع التالي في هذا الملف, و لاحظ كيف المسارات المحددة.

    ProxyCommand /c/windows/connect.exe -H username@proxy.example.com:443 %h %p
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
  5. إعداد ويندوز cmd.exe قذيفة.

    افترض أنك لا تحب جيت باش قذيفة.تفضل cmd.exe مترجم.

    • انتقل إلى ملف config في C:\Documents and Settings\.ssh\config
    • جعل نسخة منه أو جعل واحدة جديدة.دعوت لي config-windows

    وضع التالي في الملف مرة أخرى مع إيلاء اهتمام دقيق إلى مسار فواصل و الأساليب.

    ProxyCommand C:/Windows/connect.exe -H username@proxy.example.com:443 %h %p
    
    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    
    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
    

للمزيد من التفاصيل ، انظر بلوق وظيفة كاملة.

نصائح أخرى

[منذ ذلك الجواب الأول المذكور أعلاه لم تحصل على الموافقة في غضون أربعة أيام ، وضعته هنا]

علما بأن corkscrew و connect, وكذلك القياسي يونكس القيادة nc فقط دعم المصادقة الأساسية (وهو غير مأمون ينقل كلمة المرور).
tunnel-auth الإصدار 0.04 بالإضافة إلى ذلك يدعم مصادقة تلخيصية.

في حالة الخاص بك وكيل يتطلب مصادقة NTLM ، كل هذه الأوامر قد تكون جنبا إلى جنب بشكل جيد جدا مع cntlm على النحو التالي:

اختيار المنفذ المحلي (هـ.ز ، 8080 كما في الأمثلة أدناه) التي cntlm سيتم الاستماع (أداء مصادقة المستخدم مع وكيل الشحن أي المزيد من الحزم من الوكيل) تعيين منفذ.... الخ(على سبيل المثال ، /etc/cntlm.conf), و يستخدمون بدلا من ProxyCommand المذكورة أعلاه (مع كل رقم منفذ إدخال):

ProxyCommand المفتاح 127.0.0.1 8080 %ح %p

أو

ProxyCommand الاتصال-ح 127.0.0.1:8080 %ح %p

أو

ProxyCommand nc -X الاتصال -x 127.0.0.1:8080 %ح %p

أو

ProxyCommand النفق-المصادقة -p 127.0.0.1:8080 -r %h:%p

كان السيناريو الخاص بي مختلفًا بعض الشيء عن السيناريو الخاص بجيف تشانج (ولكن بناءً على منشوره) ولكنه قد يكون مفيدًا هنا.

يتم الوصول إلى الإنترنت في مكان العمل/الشركة بالكامل عبر وكيل غير مصادق.كنت قادرا على الاستنساخ من ولكن لا تدفع ل جيثب:جري

git push -u origin master

سيعود

ssh: connect to host github.com port 22: Operation timed out
fatal: The remote end hung up unexpectedly

مرتكز على http://returnbooleantrue.blogspot.com/2009/06/using-github-through-draconian-proxies.html و http://meinit.nl/ssh-through-a-proxy-from-your-apple-mac-os-x و http://www.mtu.net/~engstrom/ssh-proxy.php تمكنت من تنزيل/تثبيت المفتاح وإضافة ما يلي إلى ~/.ssh/config:

Host github.com
  User git
  Port 22
  Hostname github.com
  TCPKeepAlive yes
  IdentitiesOnly yes
  ProxyCommand /usr/local/bin/corkscrew proxy.<my-workplace>.com 8080 %h %p 

بعض النقاط التي يجب ملاحظتها:

  • أستخدم المفتاح الخاص لمكان العمل/الشركة أيضًا مع GitHub:إذا لم تقم بذلك فسوف تحتاج إلى إضافة سطر "IdentityFile".

  • على عكس Jeff Tchang (وبفضل mtu.net) لم أكن بحاجة إلى الحصول على "~/.ssh/myauth" في نهاية سطر ProxyCommand

  • لم أكن بحاجة إلى إعداد قسم مضيف ssh.github.com.

نأمل أن تساعد هذه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top