كيف يمكنني استخدام جيثب خلال قاسية وكلاء?
سؤال
وبالنظر إلى القيود التالية ، كيف يمكنني استخدام جيثب من Windows و Unix ؟
- جميع الوصول إلى الإنترنت يقتصر الوكيل
- الوكيل فقط يسمح اتصالات على المنفذ 80 و 443
- ربط الأسلوب هو إلا تمكين 443
- مصادقة الوكيل مطلوبة (NTLM أو الأساسية)
المحلول
ترى "باستخدام جيثب خلال الصارمة وكلاء (Windows و Unix)" جيف Tchang (متوفرة سابقا من موقع آخر) ، والذي يتضمن تعليمات لكل من Windows و Unix ، تلخيصها أدناه.
Unix
- تحميل بوابة.
- تحميل وتثبيت المفتاح.
تحرير أو إنشاء الملف
~/.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
إذا كان كل شيء هو الإعداد بشكل صحيح يجب أن تكون قادرة على تشغيل
ssh github.com
ونرىمرحبا المستخدم!لقد تصديقه بنجاح ، ولكن جيثب لا توفر الوصول قذيفة.
اتصال github.com مغلقة.إذا كان هذا لا يعمل يمكنك تشغيل
ssh ssh.github.com
والحصول على نفس الشيء.إذا الأمر الأول لم يعمل فهذا يعني أنك تستخدم بروكسي الذي يمنع الاتصال على المنفذ 22.تقريبا لا يوجد وكلاء كتلة الاتصال على المنفذ 443 لأنك تحتاج أن SSL.
ويندوز
- تحميل msysgit.بعض الإعدادات:
- "تشغيل بوابة من ويندوز موجه الأوامر"
- "استخدام المفتوح" (هذا مهم جدا)
- اختيار الخط الخاص بك النهايات
- تحميل ربط.ج.هذه الأداة تستحق الخاصة بعد لأن معظمهم من البساطة المطلقة.وتعكس أداة مفتوحة المصدر المفتاح و يستخدم نفق من خلال وكلاء.نعم الأداة اسم يسمى حقا "الاتصال.ج." لمستخدمي ويندوز ، قبل تجميعها الثنائية هو متاح.أنا وضعت بلدي
connect.exe
فيC:\Windows\connect.exe
. - تقرر ما إذا كنت ترغب في استخدام ويندوز
cmd.exe
أن تفعل الأشياء أو Cygwin أسلوب شل.أو على حد سواء. إعداد 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
إعداد ويندوز
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
- انتقل إلى ملف config في
للمزيد من التفاصيل ، انظر بلوق وظيفة كاملة.
نصائح أخرى
[منذ ذلك الجواب الأول المذكور أعلاه لم تحصل على الموافقة في غضون أربعة أيام ، وضعته هنا]
علما بأن 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.
نأمل أن تساعد هذه.