الدليل النهائي لـ SSH - إعداد مفاتيح SSH

مرحبًا بك في دليلنا النهائي لإعداد مفاتيح SSH (Secure Shell). سيرشدك هذا البرنامج التعليمي إلى أساسيات إنشاء مفاتيح SSH ، وكذلك كيفية إدارة المفاتيح المتعددة وأزواج المفاتيح.

قم بإنشاء زوج مفاتيح SSH جديد

افتح Terminal وقم بتشغيل الأمر التالي:

ssh-keygen

سترى النص التالي:

Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):

اضغط على Enter لحفظ مفاتيحك في /home/username/.sshالدليل الافتراضي .

سيُطلب منك بعد ذلك إدخال كلمة مرور:

Enter passphrase (empty for no passphrase):

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

بعد إدخال كلمة المرور وتأكيدها ، سترى ما يلي:

Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+

لديك الآن زوج مفاتيح SSH عام وخاص يمكنك استخدامه للوصول إلى الخوادم البعيدة وللتعامل مع المصادقة لبرامج سطر الأوامر مثل Git.

إدارة مفاتيح SSH المتعددة

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

يمكن أن تصبح إدارة مفاتيح SSH مرهقة بمجرد أن تحتاج إلى استخدام مفتاح ثانٍ. تقليديا ، ستستخدم ssh-addلتخزين المفاتيح الخاصة بك ssh-agent، وكتابة كلمة المرور لكل مفتاح. تكمن المشكلة في أنك ستحتاج إلى القيام بذلك في كل مرة تقوم فيها بإعادة تشغيل جهاز الكمبيوتر الخاص بك ، والذي يمكن أن يصبح مملاً بسرعة.

الحل الأفضل هو أتمتة إضافة المفاتيح وتخزين كلمات المرور وتحديد المفتاح الذي يجب استخدامه عند الوصول إلى خوادم معينة.

SSH config

أدخل SSH config، وهو ملف تكوين لكل مستخدم لاتصالات SSH. قم بإنشاء ملف جديد: ~/.ssh/configوافتحه للتحرير:

nano ~/.ssh/config

إدارة مفتاح SSH المسمى المخصص

أول شيء سنقوم بحله باستخدام هذا configالملف هو تجنب الاضطرار إلى إضافة مفاتيح SSH ذات الأسماء المخصصة باستخدام ssh-add. بافتراض تسمية مفتاح SSH الخاص بك ~/.ssh/id_rsa، أضف ما يلي إلى configالملف:

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

بعد ذلك ، تأكد من ~/.ssh/id_rsaعدم ssh-agentوجوده عن طريق فتح محطة أخرى وتشغيل الأمر التالي:

ssh-add -D

سيؤدي هذا الأمر إلى إزالة جميع المفاتيح من ssh-agentالجلسة النشطة حاليًا .

الآن إذا حاولت إغلاق مستودع GitHub ، فسيستخدم ملفك configالمفتاح في ~/.ssh/ida_rsa.

فيما يلي بعض أمثلة التكوين المفيدة الأخرى:

Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes

الآن يمكنك استخدام ملفات git clone [email protected]:company/project.git

Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes

الآن يمكنك استخدام ملفات git clone [email protected]:username/other-pi-project.git

Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes

الآن يمكنك SSH في الخادم الخاص بك باستخدام ssh myserver. لم تعد بحاجة إلى إدخال منفذ واسم مستخدم في كل مرة تدخل فيها SSH إلى خادمك الخاص.

إدارة كلمة المرور

الجزء الأخير من اللغز هو إدارة كلمات المرور. يمكن أن يصبح إدخال كلمة مرور مملة للغاية في كل مرة تقوم فيها بتهيئة اتصال SSH. للتغلب على هذا ، يمكننا استخدام برنامج إدارة كلمات المرور الذي يأتي مع macOS وتوزيعات Linux المختلفة.

في هذا البرنامج التعليمي ، سنستخدم برنامج Keychain Access الخاص بنظام macOS. ابدأ بإضافة مفتاحك إلى Keychain Access عن طريق تمرير -Kالخيار إلى ssh-addالأمر:

ssh-add -K ~/.ssh/id_rsa_whatever

يمكنك الآن رؤية مفتاح SSH الخاص بك في Keychain Access:

الوصول إلى سلسلة المفاتيح

ولكن إذا كنت إزالة مفاتيح من ssh-agentمع ssh-add -Dأو إعادة تشغيل جهاز الكمبيوتر الخاص بك، سيتم مطالبتك لكلمة المرور مرة أخرى عند محاولة استخدام SSH. تبين أن هناك طوقًا آخر للقفز من خلاله. افتح configملف SSH الخاص بك عن طريق التشغيل nano ~/.ssh/configوإضافة ما يلي:

Host * AddKeysToAgent yes UseKeychain yes

مع ذلك ، كلما قمت بتشغيله sshسيبحث عن مفاتيح في Keychain Access. إذا وجدت واحدة ، فلن تتم مطالبتك بكلمة مرور بعد الآن. ستتم أيضًا إضافة المفاتيح تلقائيًا في ssh-agentكل مرة تقوم فيها بإعادة تشغيل جهازك.

الآن بعد أن تعرفت على أساسيات إنشاء مفاتيح SSH جديدة وإدارة مفاتيح متعددة ، اخرج sshإلى محتوى قلبك!