الدليل النهائي لـ 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
إلى محتوى قلبك!