Git on Bitbucket: اسأل دائمًا عن كلمة المرور ، حتى بعد تحميل مفتاح SSH العام




(6)

قمت بتحميل ~/.ssh/id_rsa.pub id_rsa.pub إلى مفاتيح SSH من Bitbucket كما هو explained ، ولكن Git لا يزال يطلب مني كلمة المرور الخاصة بي في كل عملية (مثل git pull ). هل اشتقت لشيء ما؟

إنه مستودع خاص (شوكة مستودع خاص لشخص آخر) وأنا استنسخته على النحو التالي:

git clone [email protected]:Nicolas_Raoul/therepo.git

هنا هو .git/config المحلي الخاص بي:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = https://[email protected]/Nicolas_Raoul/therepo.git
[branch "master"]
        remote = origin
        merge = refs/heads/master

في نفس البيئة مع نفس المفتاح العام ، يعمل Git on Github بشكل جيد.
.ssh is rwx------ ، .ssh/id_rsa is .ssh/id_rsa -rw------- ، .ssh/id_rsa.pub is -rw-r--r--


التالي يفترض الوصول إلى سطر الأوامر عبر iTerm / الطرفية إلى bitbucket.

بالنسبة لنظام MacOS Sierra 10.12.5 ، أظهر نظامي مشكلة مماثلة - طلب عبارة مرور SSH الخاصة بي على كل اتصال بـ bitbucket.

المشكلة تتعلق بتحديثات OpenSSH في نظام التشغيل MacOS 10.12.2 ، والموضح هنا في الملاحظة الفنية TN2449 .

قد ترغب جيدًا في تصميم الحل الخاص بك ، ولكن ما يلي سيعمل عند إضافته إلى ملف ~ / .ssh / config الخاص بك:

Host *
    UseKeychain yes

لمزيد من المعلومات حول تهيئة ssh ، ألقِ نظرة على صفحات man لـ ssh_config:

% man ssh_config

شيء آخر: هناك كتابة جيدة حول المستخدم المتميز here والتي تناقش هذه المشكلة والحلول المختلفة حسب احتياجاتك وإعدادك.


في حالة طلب HTTP ، يمكن أيضًا لصق بيانات الاعتماد (مع كلمة المرور) مباشرة في عنوان url:

http://username:[email protected]/...

سيؤدي ذلك إلى حفظ الألم لإعطاء أوراق الإعتماد الخاصة بك في كل مرة مرة أخرى. تعديل بسيط .git / config (عنوان url).


كما هو موضح explained ، إذا استنسخت مع عنوان SSH ، فلن تحتاج إلى إدخال اسم المستخدم / كلمة المرور في كل مرة تقوم فيها بالدفع / السحب. تحقق من answer أعلاه من قبل @ manojlds

ولكن إذا كنت تريد النسخ باستخدام HTTPS وتريد تجنب إدخال اسم المستخدم / كلمة المرور في كل مرة ، فيمكنك تخزين بيانات الاعتماد في ذاكرة التخزين المؤقت باستخدام الأمر أدناه:

git config --global credential.helper 'cache --timeout 3600'

حيث 3600 (ثانية) تعني ساعة واحدة ، يمكنك تغييرها حسب متطلباتك.


لها أجاب بالفعل أعلاه. سوف ألخص الخطوات للتحقق أعلاه.

قم بتشغيل git remote -v في dir dir. إذا كان الإخراج يعرض عنوان url البعيد يبدأ بـ https://abc فقد تحتاج إلى كلمة مرور اسم المستخدم في كل مرة.

لذا ، لتغيير عنوان url البعيد ، يبدأ git remote set-url origin {ssh remote url address starts with mostly [email protected]:} .

الآن قم بتشغيل git remote -v للتحقق من عنوان url البعيد الذي تم تغييره.

راجع: https://help.github.com/articles/changing-a-remote-s-url/


هل أنت متأكد من أنك استنسخته باستخدام عنوان url الخاص بـ ssh؟

يشير عنوان url للمصدر url = https://[email protected]/Nicolas_Raoul/therepo.git حتى إذا كان يستخدم https فسوف يطلب كلمة المرور بغض النظر عن مفاتيح ssh الخاصة بك.






bitbucket