سؤال يستمر macOS في طلب عبارة ssh الخاصة بي منذ أن قمت بتحديثها إلى Sierra


اعتاد أن يتذكر عبارة المرور ، لكنه الآن يطلب مني ذلك في كل مرة.

لقد قرأت أنني بحاجة إلى إعادة إنشاء المفتاح العام باستخدام هذا الأمر ، وهو ما فعلته:

ssh-keygen -y -f id_rsa > id_rsa.pub

لكنها لم تصلح أي شيء.

كيف يمكنني جعل macOS تذكر عبارة المرور الخاصة بي مرة أخرى؟


524
2017-09-22 09:21


الأصل


أواجه سلوكًا مرتبطًا: في وقت سابق ، سيظهر مربع حوار الحلقة الرئيسية لطلب كلمة المرور ، والآن أحصل على مطالبة شاشة SSH العادية. ربما ذهب بعض تسجيل البرنامج المساعد. - Daniel B
لقد مرت سنوات منذ أن قمت بتوليد id_rsa ولم أستخدم أبدًا عبارة مرور واستخدمت هذا ssh في العديد من الخوادم. هل لدي حقا عبارة مرور على ذلك ، أم أنها مجرد أن يعتقد سييرا أنني يجب أن؟ لاحظ أن $ cat ~ / .ssh / id_rsa | head -2 ----- BEGIN RSA PRIVATE KEY ----- Proc-Type: 4، EncCRYPTED - Joe Murray
تكرار من apple.stackexchange.com/q/254468/62697 - Cœur
إذا كنت تستخدم Pretzo ولم تحل أي من هذه الإجابات مشكلتك: تأكد من أنك لا تملك ssh وحدة تمكين في zpretzorc. إنه غير ضروري على نظام MacOS على أي حال ، وإذا تم تمكينه ، فإنه سيطالبك بإدخال عبارة المرور الخاصة بك حتى بعد إضافتك UseKeychain. - Jimothy
محاولة القيام ssh -v ... لمعرفة ما إذا كان يحتوي على أي معلومات مفيدة لتصحيح الأخطاء ... - rogerdpack


الأجوبة:


في الإصدار الأحدث من macOS (10.12.2) ، هذا سهل الإصلاح. مجرد تحرير الخاص بك ~/.ssh/config وتمكين UseKeychain اختيار:

Host *
    UseKeychain yes

ليست هناك حاجة لتغيير أي شيء آخر. الآن كل شيء يعمل بالطريقة التي كان يعمل بها قبل آخر التحديثات. لا تحتاج إلى إضافة مفاتيح إلى ssh-agent.


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


1017
2017-12-19 12:04



هذا عمل على الاطلاق بالنسبة لي. كل شيء أدناه يبدو أكثر تعقيدًا من هذا الإصلاح. - Br.Bill
لاحظ ال Host * يجب وضع (تقريبا) دائما في الجزء السفلي من الخاص بك ~/.ssh/config ملف. متى ssh يبحث عن إعدادات يستخدم أول قيمة يجدها. وهكذا ، من خلال وضع مجموعة أحرف البدل في النهاية ، فإنها تعمل كمجموعة من الافتراضات ؛ يمكنك تجاوز الإعدادات لمضيفات معينة عن طريق تحديدها مسبقًا في الملف. - Molomby
هذا العمل بالنسبة لي كذلك ، ولكن لم يكن لدي لإدخال عبارة المرور بشكل صحيح مرة واحدة. يوجد إجابة أخرى تصف كيف يمكنك عرض كلمة المرور إذا كنت لا تتذكرها. - FGreg
إذا لم يكن ملف التهيئة موجودًا ، فسيعمل إنشاء واحد وإضافة هذا أيضًا. - wynshaft
أنت لست بحاجة إلى Host * عنوان. فقط إلحاق خط واحد UseKeychain yes في الجزء العلوي من الخاص بك .ssh/configإذا كنت ترغب في هذا ينطبق على جميع المضيفين. - sj26


كان لي نفس المشكلة. يظل MacOS Sierra keychain يسأل عن عبارة المرور. يجب أن يتم تشفير id_rsa باستخدام عبارة مرور للأمان. ثم حاول إضافته إلى سلسلة المفاتيح ssh-add -K ~/.ssh/id_rsa

إذا كان المفتاح الخاص بك في مجلد آخر من ~/.ssh ثم استبدال المجلد الصحيح.

Keychain الآن يعرف مفتاح ssh الخاص بك ، ونأمل ، كل الأعمال الآن (منجم)


170
2017-09-23 12:53



هذا يعمل ولكن يبدو أنه لا يستمر عند إعادة تشغيل جهاز الكمبيوتر الخاص بي. أي شخص آخر وجود نفس المشكلة؟ - joshua.paling
نعم ، نفس المشكلة هنا. @ joshua.paling - kingkool68
@ joshua.paling، kingkool68 - قامت Apple بإزالة القدرة على تذكر مفاتيح SSH الخاصة بك عبر إعادة التشغيل من أجل التوافق مع سلوك OpenSSH العادي. اطّلع على هذا السؤال لمعرفة طرق أخرى لتحقيق الوظيفة نفسها: apple.stackexchange.com/questions/254468/... - Evan Pon
EvanPon لكن ذلك لن يعمل مع المفاتيح المشفرة ، أليس كذلك؟ - Konrad Rudolph
KonradRudolph أنه يعمل بالنسبة لي. دعوة ssh-add مع ال -A سيظهر الخيار في سلسلة مفاتيح MacOS لأي كلمات مرور للهويات المعنية. وأعتقد أنه سيطالبك إذا كانت كلمات المرور ليست في keychain. - Evan Pon


هذا ثابت مشكلتي مماثلة:

/usr/bin/ssh-add -K

هذا يخزن passphrases في سلسلة المفاتيح الخاصة بك.

تحديث (شكراEasyCo): هذا يعمل ولكن لا يستمر بين عمليات إعادة التشغيل. @ jukka-suomela's solution في هذه الصفحة هل العمل عبر إعادة التشغيل. يمكنك العثور على هذه الإجابة هنا:

https://superuser.com/a/1158050/234685


65
2017-10-09 14:39



هذا هو الشيء الوحيد الذي يعمل. - cryptic0
لم أكن في حاجة إلى إنشاء .ssh / .config عند استخدام هذا الحل. - Shai
هذا العمل بالنسبة لي. لا حاجة لتحرير ملف المضيف. أنا على سييرا. - cchiera
هذا العمل بالنسبة لي على نظام التشغيل Mac OS سييرا. - Dayron Gallardo
كما ذكر سابقاً ، هذا يعمل ولكن لا يستمر بين عمليات إعادة التشغيل. @ حل jukka-suomela في إعادة التشغيل. - EasyCo


كان عليّ فقط إدخال عبارة المرور الصحيحة مرة واحدة وبدأت العمل. كانت المشكلة أنني لم أتذكر عبارة المرور الأصلية لـ SSH ، ولكنني استعدتها باتباعها هذه الخطوات من جيثب:

  • في Finder ، ابحث عن تطبيق Keychain Access.
  • في Keychain Access ، ابحث عن SSH.
  • انقر مرتين على إدخال مفتاح SSH لفتح مربع حوار جديد.
  • مربع حوار الوصول إلى Keychain في الركن السفلي الأيسر ، حدد Show password.
  • ستتم مطالبتك بكلمة المرور الإدارية الخاصة بك. اكتبه في مربع الحوار "Keychain Access".
  • سيتم الكشف عن كلمة المرور الخاصة بك.

39
2017-10-29 17:16



لا يعمل. المحطة ما زالت تقول "عبارة مرور سيئة" - Jayden Lawson


لم يعمل أي من الحلول المذكورة أعلاه بعد تثبيت سييرا على El Capitan على جهاز MacBook Pro جديد. Sierra بواسطة التصميم لا يحفظ مفاتيح SSH في keychain.

عملت حلين لي. واحد هو إضافة الأمر ssh-add -A &> /dev/null إلى ~ / .bash_profile. في كل مرة تقوم فيها بفتح الجهاز ، سيتم تنفيذ هذا الأمر ( &> /dev/null جزء يرسل إخراج الأمر الملف / ديف / فارغة).

حل أكثر تعقيدًا ولكن أكثر رقة قليلاً هو إنشاء بلطة باستخدام الأمر الذي يتم تنفيذه في كل مرة يتم فيها تشغيل نظام التشغيل كما هو مقترح في إنقاذ مفاتيح SSH في سلسلة المفاتيح macOS سييرا. هذا ينطوي على استخدام Xcode لإنشاء الملف.


18
2017-09-27 14:40



يبدو أن هذا هو الجواب الرسمي لشركة أبل أيضا - انظر openradar.appspot.com/27348363 - Nick Maynard
أفضل حل حتى الآن بالنسبة لي. أنا أستخدم Mac OSX Sierra (10.12.2). - zyc


أحد الإصلاحات هو إضافة ما يلي إلى ملف ~ / .ssh / config الخاص بك:

Host *
   AddKeysToAgent yes
   IdentityFile ~/.ssh/id_rsa
   UseKeychain yes

مأخوذ من: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ انظر أيضا: https://apple.stackexchange.com/a/264974/3810


14
2017-12-16 06:14



حتى الآن ، في أي من الإجابات ، وقد ذكر أي شخص Bad configuration option: usekeychain خطأ أحصل على UseKeychain (على الرغم من أنه يتم تكبيره). لكن أنا كان قادرة على الحصول على العمل عن طريق إزالة فقط هذا الخط وترك AddKeysToAgent و IdentityFile (لا يزال لديك لإدخال عبارة المرور في المرة الأولى). هذا هو مع ماكوس سييرا 10.12.6. - William Turrell
هذا يعمل بشكل جيد عندما أكون في المطراف واستخدم أمر ssh ، لكن التطبيقات الأخرى ، مثل WebStorm التي تستخدم مطرافهم الخاص ، لا تأخذ التكوين حتى أستخدم أولاً أمر ssh في المحطة الطرفية العادية. ثم يعمل في كل مكان ، أي اقتراحات؟ - santiago arizti
WilliamTurrell إذا استمر هذا ، اكتب which ssh للتأكد من أنك تستخدم /usr/bin/ssh وليس نسخة من Fink أو MacPorts ، والتي ستكون تحت شيء من هذا القبيل /usr/local/bin/ssh أو /opt/local/bin/ssh - Stefan Lasiewski


هذا الصباح ، واجهت نفس المشكلة التي واجهتك بعد التحديث إلى سييرا. في حالتي ، و id_rsa تم تشفير الملف وبعد فك تشفير كان يعمل مثل السحر.

  1. تحقق ما إذا كان لديك id_rsa الملف مشفر باستخدام الأمر التالي: cat ~/.ssh/id_rsa | head -2
  2. إذا كان السطر الثاني يقول Proc-Type: 4,ENCRYPTED، إنها مشفرة ويمكنك محاولة فك تشفيرها
  3. مهم: قم بعمل نسخة احتياطية من المستند الأصلي id_rsa ملف! استخدم الأمر cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. فك تشفير المفتاح الخاص بك openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. قم بإزالة المفتاح الأصلي (rm ~/.ssh/id_rsa) واستبدله مع واحد فك تشفير: mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

بعد هذه الخطوات ، يجب أن تتمكن من استخدام ssh مرة أخرى.


7
2017-09-22 10:58



في حين أن هذا هو الحل من نوع ما ، لا أعتقد ذلك حقا يحل مشكلة OP. - Daniel B
هذا يعمل بالنسبة لي. DanielB ، ما المشكلة في القيام بذلك؟ - Dag Høidahl
@ DagHøidahl لن يتم تشفير المفتاح بعد الآن. ويمكن سرقتها مع حقوق المستخدم العادية ، لذلك يجب أن يكون التشفير قويًا. - Daniel B
هذا يزيل كلمة المرور من المفتاح ، ولهذا السبب يعمل حول مشكلة OP. لكن أوصي ضد هذا. كلمة المرور هي كل ما يمنع الناس من استخدام المفتاح الخاص بك عند سرقته. نظرًا لأن مفتاحك ربما يمنح إمكانية الوصول إلى أنظمة متعددة لا تريد إضعافها. - Martijn Heemels


لقد واجهت هذه المشكلة أيضًا عند محاولة نشر بعض الرموز باستخدام كابيسترانو. محبط جدا. فيما يلي طريقتين أعرفهما للتعامل مع هذه المشكلة.

الطريقة 1: إضافة كل معروف مفاتيح وكيل SSH.

لذا فإن أحد الحلول التي وجدتها هو الركض ssh-add مع ال -A الخيار - الذي يضيف جميع الهويات المعروفة إلى وكيل SSH باستخدام أي عبارات مرور مخزنة في سلسلة المفاتيح الخاصة بك - مثل هذا:

ssh-add -A

الآن هذا يعمل لكنه لن يستمر عبر إعادة التشغيل. لذلك إذا كنت لا تقلق بشأن هذا مرة أخرى ، فافتح فقط مستخدمك ~/.bash_profile ملف مثل هذا:

nano ~/.bash_profile

وأضف هذا الخط إلى الأسفل:

ssh-add -A 2>/dev/null;

الآن عند فتح نافذة طرفية جديدة ، يجب أن يكون كل شيء جيدًا!

الطريقة الثانية: إضافة فقط مفاتيح SSH الموجودة في keychain للوكيل.

حتى حين ssh-add -A يجب أن يعمل الخيار لمعظم الحالات الأساسية ، واجهت مشكلة في الآونة الأخيرة حيث كان لدي 6-7 صناديق فاجرانت (التي تستخدم مفاتيح / هويات SSH من أجل الوصول) على جهاز على رأس أكثر شيوعًا id_rsa.pub في المكان.

قصة قصيرة ، انتهى بي الأمر إلى أن أقفز من خادم بعيد بسبب العديد من المحاولات الفاشلة التي تعتمد على مفاتيح / هويات SSH منذ أن تم اعتماد الوصول إلى الخادم على كلمة مرور ومفاتيح / هويات SSH هي مفاتيح / هويات SSH. لذا حاول وكيل SSH الكل من مفاتيح SSH الخاصة بي ، وفشلت ولم أستطع حتى الوصول إلى مطالبة كلمة المرور.

المشكلة هي ssh-add -A سوف تضيف بشكل تعسفي كل مفتاح / هوية SSH واحد لديك إلى الوكيل حتى إذا لم يكن ذلك ضروريًا ؛ مثل في حالة صناديق التشويش.

كان الحل بعد الكثير من الاختبارات على النحو التالي.

أولاً ، إذا كان لديك المزيد من مفاتيح / هويات SSH المضافة إلى وكيلك أكثر مما تحتاج - كما هو موضح في ssh-add -l ثم تطهيرهم جميعا من وكيل مثل:

ssh-add -D

مع القيام بذلك ، قم بتشغيل وكيل SSH كعملية خلفية مثل:

eval "$(ssh-agent -s)"

الآن ، أصبح الأمر غريباً وأنا لست متأكداً من السبب. في بعض الحالات ، يمكنك على وجه التحديد إضافة ~/.ssh/id_rsa.pub المفتاح / الهوية للوكيل مثل:

ssh-add ~/.ssh/id_rsa.pub

اكتب عبارة المرور ، واضغط إرجاع ويجب أن تكون جيدًا.

ولكن في حالات أخرى ، يكفي تشغيل هذا ببساطة للحصول على المفتاح / الهوية المضافة:

ssh-add -K

إذا كان كل ذلك ناجحًا ، فاكتب ssh-add -l وسترى مفتاح / هوية SSH وحيدًا مدرجًا.

الامور جيدة؟ الآن فتح الخاص بك .bash_profile:

nano ~/.bash_profile

وأضف هذا الخط إلى الأسفل ؛ تعليق أو إزالة -Aإذا كان لديك ذلك في مكانه:

ssh-add -K 2>/dev/null;

سيسمح ذلك بإعادة تحميل مفتاح / هوية SSH إلى وكيل SSH في كل عملية بدء / إعادة تشغيل.

استكمال: لقد أضافت أبل الآن UseKeychain الخيار إلى خيارات التكوين SSH مفتوحة وتأمل ssh-add -A حل كذلك.

اعتبارا من ماكوس سييرا 10.12.2 ، وأضاف أبل (أفترض) أ UseKeychain خيار التكوين لتكوينات SSH. التحقق من صفحة الرجل (عبر man ssh_config) يعرض المعلومات التالية:

UseKeychain
        On macOS, specifies whether the system should search for
        passphrases in the user's keychain when attempting to use a par-
        ticular key. When the passphrase is provided by the user, this
        option also specifies whether the passphrase should be stored
        into the keychain once it has been verified to be correct.  The
        argument must be ``yes'' or ``no''.  The default is ``no''.

الذي يتلائم مع أبل رؤية الحل إما مضيفا ssh-add -A لك .bash_profile  كما هو موضح في هذه التذكرة المفتوحة الرادار أو مضيفا UseKeychain كأحد الخيارات في كل مستخدم ~/.ssh/config.


3
2018-01-02 00:05





جوكا سووميلاالصورة إجابة هو الصحيح ، ولكن إذا كنت تستخدم openssh مثبت من homebrew، ثم تحتاج أيضًا إلى إلغاء تثبيته مع:

brew remove openssh

... للرجوع مرة أخرى إلى openssh الافتراضي للنظام ، نظرًا لأن واحد لا يدعمه UseKeychain دخول التكوين سه.


3
2018-01-28 08:58



إذا كان أي شخص يريد ذلك مع homebrew ، بينغ لي هنا: github.com/rdp/homebrew-openssh-gssapi - rogerdpack


لقد جربت عدة إجابات هنا ، ولكن لا تزال تواجه مشكلات في تمرير المفاتيح عن بُعد (مثل عند استخدام كابيسترانو). لحلها ، قرأت التقنية من التفاح وقدمت ملف التهيئة الخاص بي. لا مزيد من السؤال عن كلمة المرور الخاصة بي!

https://developer.apple.com/library/content/technotes/tn2449/_index.html

Host *  
   IdentityFile ~/.ssh/id_rsa  
   IgnoreUnknown UseKeychain  
   UseKeychain yes  
   AddKeysToAgent yes

2
2018-02-15 02:15