المصادقة على معدات الشبكة من خلال SSH باستخدام المفاتيح العامة

مجموعة من المفاتيح

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

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





قمت أيضًا بفحص مواضيع "القرحة":

  • تحويل المفتاح بين OpenSSH <==> SecureCRT <==> PuTTY.
  • استخدام أزواج مختلفة من المفاتيح العامة لمعدات مختلفة. مفتاح واحد جيد ، ولكن لا ينطبق في الواقع. يحتاج العملاء أو المعدات المختلفة إلى أزواج مختلفة من المفاتيح العامة (بعضها باستخدام كلمة مرور ، والبعض الآخر بدون).
  • استخدام نظام التشغيل MAC OS X الأصلي (الأصلي) للعمل مع المفاتيح العامة.
  • يجب أن يساعد الدليل أيضًا في استخدام Ansible مع معدات الشبكة ، نظرًا لأن Ansible يستخدم OpenSSH مع مصادقة المفتاح العام بشكل افتراضي.

يتم اختبار 90٪ من المواد المعروضة على معدات حقيقية.


المقدمة


بالإضافة إلى مصادقة كلمة المرور القياسية (كلمة المرور / لوحة المفاتيح) في بروتوكول SSH ، هناك أيضًا مصادقة مفتاح عام (RSA).

كمرجع
RSA (https://ru.wikipedia.org/wiki/RSA) — . (public key) (private key). : . . , , .

تتكون المصادقة باستخدام مفاتيح RSA من عدة خطوات:


لماذا RSA فقط؟ لماذا لا DSA؟ لسوء الحظ ، لم أجد الإجابة على هذا السؤال (ولم أبحث عنه حقًا). ولكن رسميًا ، يتم دعم RSA فقط على معدات Cisco.

دليل تكوين Shell الآمن ، الإصدار 15E من Cisco IOS:

يعد دليل تكوين Shell الآمن ، وقيود الإصدار 15E من Cisco IOS
لإصدار دعم Secure Shell الإصدار 2
Rivest و Shamir و Adleman (RSA) من متطلبات خادم SSH. لا تحتاج الأجهزة التي تعمل كعملاء SSH إلى إنشاء مفاتيح RSA.

محاولة إدخال بيانات مفتاح DSA:

CSR-1(conf-ssh-pubkey-data)#exit
%SSH: Only ssh-rsa type is supported
CSR-1(conf-ssh-pubkey-user)#


إنشاء مفتاح RSA عام


يمكن إنشاء زوج من مفاتيح RSA باستخدام أدوات مساعدة مختلفة: SecureCRT أو PuTTYgen أو أي برنامج آخر. عند إنشاء مفتاح ، يمكنك تعيين عبارة المرور (حماية كلمة المرور بمفتاح).


إنشاء زوج RSA في SecureCRT


SecureCRT -> أدوات -> إنشاء مفتاح عام ...:


قليلا من النظرية → زر "التالي>":


نوع شهادة RSA / DSA → اختر RSA → زر "التالي>":


كلمة مرور التشفير للمفتاح السري (اختياري ، يمكنك تركه فارغًا وليس تشفيره) + تعليق → زر "التالي>":


اختر طول المفتاح (في SecureCRT الإصدار 6.1.0 الحد الأقصى لطول المفتاح هو 2048 بت ، في الإصدار 8.5.4 - 16 384 بت):


إنشاء مفتاح ← زر "التالي>":

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



حفظ زوج مفاتيح ← تحديد موقع تخزين ← تحديد تنسيق لمفتاح محفوظ (تنسيق VanDuke Private ، OpenSSH legacy ، OpenSSH new) ← زر "إنهاء":



يسأل SecureCRT ما إذا كان سيجعل هذا المفتاح هو المفتاح الافتراضي لـ SecureCRT:



الجيل RSA الزوج في PuTTYgen


يمكنك تحميل PuTTYgen هنا: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html .

إطلاق PuTTYgen:


حدد المعلمات (نوع الزوج: RSA ؛ بُعد بت المفتاح: 2048 ؛ قم بتعيين عبارة المرور بشكل اختياري (حماية كلمة المرور بكلمة مرور)) → إنشاء:


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


حفظ مفاتيح RSA ← زر "حفظ المفتاح الخاص":


يرجى ملاحظة ما يلي: لا يمكن استخدام مفاتيح RSA المخزنة بتنسيق خاص في أحد البرامج في برنامج من شركة مصنعة أخرى. أي أن زوجًا من مفاتيح RSA التي تم إنشاؤها في PuTTYgen وحفظها بتنسيق مفتاح المعجون الخاص غير مناسبة للاستخدام في SecureCRT ، والعكس صحيح. PuTTY يدعم فقط تنسيق المفتاح المعجون الخاص. الحل الشامل لتوزيع المفاتيح هو تحويل المفاتيح إلى تنسيق OpenSSH (انظر الرابط 2: "التحويل من المعجون إلى SecureCRT باستخدام مصادقة المفاتيح"). نظرًا لأن SecureCRT يعمل بحرية مع تنسيق OpenSSH. ويقوم برنامج PuTTYgen بتحويل تنسيق OpenSSH إلى تنسيق المفتاح الخاص المعجون.


تحويل مفتاح RSA من تنسيق المفتاح الخاص المعجون (PuTTY) إلى تنسيق OpenSSH (SecureCRT)


من أجل استخدام مفاتيح RSA في SecureCRT التي يتم إنشاؤها في PuTTYgen وحفظها بتنسيق مفتاح المعجون الخاص (* .ppk) ، نقوم بتصديرها باستخدام PuTTYgen بتنسيق OpenSSH:

  1. قم بتشغيل PuTTYgen.
  2. نقوم بتحميل مفتاح RSA الحالي بتنسيق مفتاح المعجون الخاص (* .ppk) ← زر "تحميل".
  3. احفظ ملف المفتاح العام ← "حفظ المفتاح العام".
  4. نقوم بتصدير المفتاح السري إلى تنسيق OpenSSH: القائمة PuTTYgen → "التحويلات" → "تصدير مفتاح OpenSSH".
  5. نستخدم ملفات OpenSSH في SecureCRT. الملف ذو المفتاح العام له الامتداد .pub ، الملف ذو المفتاح الخاص ليس له امتداد.


تحويل مفتاح RSA من تنسيق VanDyke Private Key (SecureCRT) إلى تنسيق Putty Private Key (PuTTY)


لاستخدام مفاتيح RSA في PuTTY التي يتم إنشاؤها في SecureCRT وحفظها بتنسيق VanDyke Private Key (ملف المفتاح العام * .pub ، ملف المفتاح السري *. (بدون ملحق)) ، قم بتصديرها باستخدام SecureCRT بتنسيق OpenSSH ، ثم باستخدام PuTTYgen نقوم بالتصدير إلى تنسيق المفتاح الخاص المعجون (* .ppk):

  1. قم بتشغيل SecureCRT.
  2. القائمة "أدوات" → "تحويل المفتاح الخاص إلى تنسيق OpenSSH ..."
  3. حدد الملف المصدر باستخدام مفاتيح VanDyke Private Key.
  4. نقوم بحفظ مفاتيح OpenSSH باسم جديد.
  5. قم بتشغيل PuTTYgen.
  6. نقوم بتحميل مفتاح RSA الحالي بتنسيق OpenSSH (*.): قائمة PuTTYgen ← "التحويلات" ← "مفتاح الاستيراد".
  7. احفظ الملف بتنسيق Putty: "Save private key".


إنشاء مفاتيح عامة على MAC OS X باستخدام نظام التشغيل


سنستخدم الأداة المساعدة ssh-keygen المضمنة (man ssh-keygen).
نقوم بإنشاء مفتاح RSA بطول 2048 بت مع اسم المفتاح ، المسار إلى المجلد الذي يحتوي على موقع تخزين المفاتيح:

ssh-keygen -b 2048 -t rsa -c "Lab router R4" -f /Users/ArtemiySP/Documents/python/r4

في وقت التشغيل ، سيطلب البرنامج كلمة مرور لحماية مفتاح RSA:

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 2048 -t rsa -C "Lab router R4" -f /Users/ArtemiySP/Documents/python/r4
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/ArtemiySP/Documents/python/r4.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r4.pub.
The key fingerprint is:
SHA256:WdT47SFvgGI7danxX94p8/cO3uyU12SB3ipkc7nHxzA Lab router R4
The key's randomart image is:
+---[RSA 2048]----+
|          .o     |
|         .. . .  |
|          .o + . |
|        oo+ B = .|
|       .S+ O OEoo|
|        o + + B*+|
|         . . =.*O|
|            .+o**|
|              =+O|
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

نقوم بإنشاء مفتاح RSA بطول 4096 بت للإشارة إلى اسم المفتاح ، والمسار إلى المجلد الذي يحتوي على موقع تخزين المفتاح ، وتعيين كلمة المرور بشكل صريح في معلمات توليد المفاتيح (-N "cisco"):

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 4096 -t rsa -C "Lab router R5" -N "cisco" -f /Users/ArtemiySP/Documents/python/r5
Generating public/private rsa key pair.
Your identification has been saved in /Users/ArtemiySP/Documents/python/r5.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r5.pub.
The key fingerprint is:
SHA256:NraLRMqB4qmA8qNjKdpBBt1JBw8Osf/3GfuB2k1R+zY Lab router R5
The key's randomart image is:
+---[RSA 4096]----+
|  o.+..          |
| . * =           |
|. o + .       .  |
| . o         . . |
|. + o . S   . .  |
|o+.. = o o . . . |
|+oo o o o o o  Eo|
|*=.. . o = * . ..|
|Boo.  . o =.o    |
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

معلمات إنشاء المفاتيح غير الموصى بها: مفتاح غير موثوق به بطول 1024 بت ، وتحديد اسم المفتاح ، ومسار المجلد الذي يحتوي على موقع تخزين المفاتيح ، نقوم بتعيين كلمة المرور بشكل صريح في معلمات إنشاء المفاتيح (-N "" - بدون كلمة مرور):

artemiy-2:Downloads ArtemiySP$ ssh-keygen -b 1024 -t rsa -C "Lab router R6" -N "" -f /Users/ArtemiySP/Documents/python/r6
Generating public/private rsa key pair.
Your identification has been saved in /Users/ArtemiySP/Documents/python/r6.
Your public key has been saved in /Users/ArtemiySP/Documents/python/r6.pub.
The key fingerprint is:
SHA256:LEcfgN+58TYMDv4MpBA2FGCWc2aFiY+SxWBf7pRViWs Lab router R6
The key's randomart image is:
+---[RSA 1024]----+
|.++=o*.o+..      |
|.oB % +. o       |
| o X * .o...     |
|o . =  E+.=.     |
| .   oo+So.*     |
|      .oo o =    |
|         + . .   |
|          o      |
|                 |
+----[SHA256]-----+
artemiy-2:Downloads ArtemiySP$

لذا ، أنشأنا ثلاثة مفاتيح بأسماء المفاتيح وموقع المفاتيح (افتراضيًا ، يتم تخزين جميع المفاتيح في / Users / [اسم المستخدم 022 / .ssh).

بشكل افتراضي ، عند الاتصال عبر SSH بالمصادقة باستخدام المفتاح العام ، يتم تخزين جميع المفاتيح العامة بالتسلسل ، والتي يتم تخزينها في المجلد /Users/ [اسم المستخدم //ssh.

مفتاح R6: إعادة تسمية المفتاح إلى "id_rsa" (اسم ملف المفتاح الذي تم إنشاؤه بشكل افتراضي هو "id_rsa") ونقله إلى المجلد باستخدام مفاتيح SSH (~ / .ssh /) (على سبيل المثال ، سنقوم بتنفيذ جميع الخطوات بحيث يتم استخدام مفتاح R6 كمفتاح رئيسي مفتاح اتصال SSH الافتراضي):

تحويل مفتاح OpenSSH العام إلى تنسيق RFC4716 (تصدير إلى Cisco IOS):

https://serverfault.com/questions/706336/how-to-get-a-pem-file-from-ssh-key-pair
ssh-keygen -f ~/Documents/python/r4.pub -e -m RFC4716
ssh-keygen -f ~/Documents/python/r5.pub -e -m RFC4716
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m RFC4716


استخدام مفتاح عام على المعدات


كيف على معدات مختلفة لربط مفتاح عام لمستخدم؟

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


Cisco IOS XE ، Catalyst (من الإصدار 15.1 والإصدارات الأحدث) ، IOS


  1. يوجد مستخدم بالفعل على الجهاز.
  2. في إعدادات SSH (ip ssh pubkey-chain) للمستخدم (سيسكو اسم المستخدم) ، حدد المفتاح العام (سلسلة المفاتيح):
    CSR-1#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    CSR-1(config)#ip ssh pubkey-chain 
    CSR-1(conf-ssh-pubkey)#username ssh-putty
    CSR-1(conf-ssh-pubkey-user)#key-string 
    CSR-1(conf-ssh-pubkey-data)#$QAAAQEAnPbynT1+2rjlyqP4viSPdTVDFLSHzWjJnAwy     
    CSR-1(conf-ssh-pubkey-data)#$NCfaqvMTPruCgG5096q8lO0ntURmNgmfMEQPOgb8weF     
    CSR-1(conf-ssh-pubkey-data)#$AtMQYk7WFM+5iBnOQ32UAHNavCUA7YFEpAdOQO4W/qB     
    CSR-1(conf-ssh-pubkey-data)#$SlOLy+PQ47jDUINBnuUeHd8ZXyzXxWglzSvqtwMEXBW     
    CSR-1(conf-ssh-pubkey-data)#$VoUTBYbJ45DmFa93P50qf494ujaAsTbYyJ/GBzJUTK/     
    CSR-1(conf-ssh-pubkey-data)#$UADAkNGxQARfOfHZWiIYb3rif6h6hfwwVUZS/Tw==       
    CSR-1(conf-ssh-pubkey-data)#exit
    CSR-1(conf-ssh-pubkey-user)#exit
    CSR-1(conf-ssh-pubkey)#exit
    CSR-1(config)#exit
    CSR-1#exit
    
    CSR-1#show running-config | inc ssh
    username ssh-public-key secret 5 $1$ebjc$EYgwMFQXPPiywFVn6rl7t.
    username ssh-putty privilege 15 secret 5 $1$vIhh$nM8iCeBKmLyVK4hA6./h4.
    ip ssh pubkey-chain
       key-hash ssh-rsa D4E9AD62F7F6265EAAB3FB8778477612
      username ssh-public-key
       key-hash ssh-rsa C331DEE821A84681A4A7B1862C100D16
      username ssh-putty
       key-hash ssh-rsa F32BEB60290EA75D151447C0D42D2A99
       key-hash ssh-rsa 5432C275B363B646E02D3BA7E8D865B7
    CSR-1#
    


سيسكو ASA


LAB-ASA5516-X-01/pri/act# conf t
LAB-ASA5516-X-01/pri/act(config)# username artemiy password artemiy privilege $
LAB-ASA5516-X-01/pri/act(config)# username artemiy attributes 
LAB-ASA5516-X-01/pri/act(config-username)# ssh authentication publickey ?

username mode commands/options:
  WORD  Raw SSH-RSA public key
LAB-ASA5516-X-01/pri/act(config-username)# ssh authentication publickey AAAAB3$

نقوم بإدخال المفتاح بالكامل في سطر واحد (تنسيق OpenSSH).


موجّهات ومفاتيح هواوي


[R1]rsa peer-public-key test-key1 encoding-type pem 
Enter "RSA public key" view, return system view with "peer-public-key end".
NOTE: The number of the bits of public key must be between 769 and 2048.
[R1-rsa-public-key]public-key-code begin 
Enter "RSA key code" view, return last view with "public-key-code end".
[R1-rsa-key-code]---- BEGIN SSH2 PUBLIC KEY ----
[R1-rsa-key-code]Subject: Subject
[R1-rsa-key-code]Comment: " Subject@Subject.local"
[R1-rsa-key-code]ModBitSize: 2048
[R1-rsa-key-code]AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
[R1-rsa-key-code]lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
[R1-rsa-key-code]63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
[R1-rsa-key-code]2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
[R1-rsa-key-code]yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
[R1-rsa-key-code]VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
[R1-rsa-key-code]---- END SSH2 PUBLIC KEY ----
[R1-rsa-key-code]public-key-code end
[R1-rsa-public-key]peer-public-key end 
[R1]display rsa peer-public-key 

=====================================
    Key name: test-key1
=====================================
Key Code:
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
---- END SSH2 PUBLIC KEY ----
aaa
local-user jet privilege level 15
 local-user jet service-type telnet terminal ssh http
ssh user jet assign rsa-key test-key1

أنواع التنسيقات الرئيسية المستوردة إلى Huawei:

"ينشئ SecureCRT و PuTTY مفاتيح RSA بتنسيق PEM."

rsa peer-public-key test-key1 encoding-type pem

"يقوم OpenSSH بإنشاء مفاتيح RSA بتنسيق OpenSSH."

rsa peer-public-key test-key1 encoding-type openssh

"يقوم OpenSSL بإنشاء مفاتيح RSA بتنسيق DER".

rsa peer-public-key test-key1 encoding-type der

القيمة الافتراضية بالنظام الست عشري:

rsa peer-public-key test-key1

ملاحظة: لا تدعم معدات Huawei المفاتيح بتنسيق RSA فحسب ، بل تدعم أيضًا التنسيقات الأخرى:

ssh user user-name assign { rsa-key | dsa-key | ecc-key } key-name

يمكنك تعيين نوع المصادقة للمستخدم بشكل صارم عبر SSH:

[R1]ssh user jet authentication-type ?
  all           All authentication, password,RSA or ECC
  ecc           ECC authentication
  password      Password authentication
  password-ecc  Both password and ECC
  password-rsa  Both password and RSA
  rsa           RSA authentication
[R1]

أي أننا نسمح بالوصول باستخدام كلمة مرور أو مفاتيح عامة وخاصة ، أو كليهما.


Huawei USG (6000)


التكوين مشابه تمامًا للإعدادات الموجودة على جهاز التوجيه ، ولكن يحتوي على بعض الميزات.

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

user-interface vty 0 4 
user privilege level 15
user-interface vty 16 20:
user privilege level 15

مثال:

[USG-a]rsa peer-public-key test-key1 encoding-type pem 
Enter "RSA public key" view, return system view with "peer-public-key end".
[USG-a-rsa-public-key]public-key-code begin
Enter "RSA key code" view, return last view with "public-key-code end".
[USG-a-rsa-key-code]---- BEGIN SSH2 PUBLIC KEY ----
[USG-a-rsa-key-code]Subject: subject
[USG-a-rsa-key-code]Comment: " subject@subject.local"
[USG-a-rsa-key-code]ModBitSize: 2048
[USG-a-rsa-key-code]AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnx
[USG-a-rsa-key-code]lTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof
[USG-a-rsa-key-code]63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK
[USG-a-rsa-key-code]2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZa
[USG-a-rsa-key-code]yI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTP
[USG-a-rsa-key-code]VdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7
[USG-a-rsa-key-code]---- END SSH2 PUBLIC KEY ----
[USG-a-rsa-key-code]public-key-code end
[USG-a-rsa-public-key]peer-public-key end
[USG-a]
[USG-a]ssh user admin assign rsa-key test-key1
! Out-of-band management interface:
[USG-a-GigabitEthernet0/0/0]service-manage ssh permit
! Grant user level 15 privillege:
[USG-a]user-interface vty 0 4
[USG-a-ui-vty0-4]user privilege level 15


Cisco Nexus 9.3


الخيار 1: التثبيت المسبق لملف المفتاح العام على الجهاز وإرفاق ملف المفتاح العام للمستخدم.

  • انسخ ملف المفتاح العام إلى الجهاز.
  • نوجه المستخدم لاستخدام ملف المفتاح العام.

switch# copy tftp://10.10.1.1/secsh_file.pub bootflash:secsh_file.pub
username User1 sshkey file bootflash:secsh_file.pub

الخيار 2: نسخ المفتاح العام للمستخدم:

username User1 sshkey
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4YLFhPqfsz4a6PUpZOtvm6zGn5TWOVMnxlTH5hr/u+aYnoM2XnDTu4Ul1iB8MMPLVKXzV4LgYhaFcU1rz2/yYhTKIwbiQTHof63fJjyWwkvyBuVZTSKh4b2pfoF2mXgdJzzRmUaiRrZZUVJWsX+CbgtKQuktG7sTK2eguHwdfhilbOAsUaL0/q39Y0aTAMnLMtn0m5r6MD/UopQPI3Fxm1L9azJ7zYIZayI43Solg0AOupPl8FHFI9Cxq81/uZRACx5lAyuObaQ4/t1Rdh3CAJj1qwfZjZFTPVdJxwTDxwfkpOzMD193M0ThOSrgfWe336Q9F3jbSWrEYUQDX8ew7


استخدام مفتاح سري لاتصال SSH


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

سننظر في إعداد استخدام المفتاح العام في البرامج الأكثر شيوعًا: SecureCRT و PuTTY.


SecureCRT


توجد قائمة مصادقة في نافذة إعدادات SSH. في ذلك ، تحتاج إلى زيادة أولوية PublicKey إلى أعلى - اجعلها في أعلى القائمة.



ثم انتقل إلى خيارات PublicKey وحدد ملف المفتاح الخاص. يتيح لك مفتاح التبديل العلوي استخدام الإعدادات العامة للمفتاح السري أو إعدادات الجلسة - مفتاح سري آخر (مفتاح غير افتراضي) - فقط لهذا الاتصال.



تكوين مفتاح عمومي عام: في القائمة خيارات ← خيارات عامة → الفئة SSH2.



معجون


في إعدادات SSH (اتصال → SSH → Auth) في حقل "ملف المفتاح الخاص للمصادقة" حدد الملف المفتاح الخاص المعجون (* .ppk):



MAC OS X


إعداد عميل قياسي لاستخدام المفاتيح العامة:

  • الاتصال بمفتاح غير افتراضي محدد يدويًا:

    artemiy-2:~ ArtemiySP$ ssh r4@10.31.73.29 -i ~/Documents/python/r4
    The authenticity of host '10.31.73.29 (10.31.73.29)' can't be established.
    RSA key fingerprint is SHA256:fxOLFKU6YGyIqisrIh2P0O52Rr6Wx/wsSAcHsTz8fo0.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.29' (RSA) to the list of known hosts.
    CSR-4#
    
  • الاتصال بمفتاح غير افتراضي محدد يدويًا:

    artemiy-2:~ ArtemiySP$ ssh r5@10.31.73.30 -i ~/Documents/python/r5
    The authenticity of host '10.31.73.30 (10.31.73.30)' can't be established.
    RSA key fingerprint is SHA256:4l67C4Il4pTaqYT4vrtWr0aY7rPmNWKsjRv2zlYtQIU.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.30' (RSA) to the list of known hosts.
    MGTU#exit
    Connection to 10.31.73.30 closed.
    

    خطأ المثال
    — . MAC OS X — .
  • الاتصال بالمفتاح الافتراضي (المفتاح الافتراضي - سيجد النظام نفسه المفتاح العام الافتراضي ويستخدمه):

    artemiy-2:~ ArtemiySP$ ssh r6@10.31.73.31
    The authenticity of host '10.31.73.31 (10.31.73.31)' can't be established.
    RSA key fingerprint is SHA256:2/ysACJQw48Q8S45ody4wna+6nJspcsEU558HiUN43Q.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '10.31.73.31' (RSA) to the list of known hosts.
    PR#exit
    Connection to 10.31.73.31 closed.
    artemiy-2:~ ArtemiySP$ 
    


كيفية تبسيط العمل مع SSH على MAC OS X:


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

يتم تحديد موقع الأسماء المستعارة وتكوين SSH الذي تم تكوينه مسبقًا في ملف ~ / .ssh / config (/Users/ [اسم المستخدم //ssh/config).

تمتلئ بهذه الطريقة:

host r4
   Hostname 10.31.73.29
   Port 22
   User r4
   IdentityFile ~/Documents/python/r4

host r5
   Hostname 10.31.73.30
   Port 22
   User r5
   IdentityFile ~/Documents/python/r5

host r6
   Hostname 10.31.73.31
   Port 22
   User r6

ملاحظة: تم تكوين الاتصال الافتراضي بشكل غير صحيح (لا أعرف مدى صحته) ، لأن الاتصال بمضيف R6 (10.31.73.31) يستغرق وقتًا طويلاً جدًا. يوصى بتحديد المسار إلى المفتاح الافتراضي على الفور.

مثال على اتصال ssh باستخدام المفاتيح العامة وملف التكوين:

artemiy-2:Documents ArtemiySP$ ssh r5
MGTU#exit
Connection to 10.31.73.30 closed by remote host.
Connection to 10.31.73.30 closed.
artemiy-2:Documents ArtemiySP$ ssh r4
CSR-4#exit
Connection to 10.31.73.29 closed by remote host.
Connection to 10.31.73.29 closed.
artemiy-2:Documents ArtemiySP$ ssh r6
PR#exit
Connection to 10.31.73.31 closed.
artemiy-2:Documents ArtemiySP$ ssh r6
PR#


استنتاج


يمكن استخدام مفاتيح RSA لاستبدال مصادقة كلمة المرور ، ولكن ليس في جميع الحالات:

  • لا يمكن مصادقة المفتاح العام إذا تم تكوين مصادقة المجال (لأن طلبات LDAP (kerberos) إلى الخادم تتم مصادقتها من أجل المصادقة).
  • لا يمكن مصادقة المفتاح العام على أجهزة الشبكة القديمة (مثال: فشل التهيئة على Cisco Catalyst 2960 مع البرامج الثابتة 12.2).

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

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

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

اليوم ، من الأفضل استخدام المفاتيح التي يبلغ طولها 2048 بت ، ولكن بالنسبة لبعض المعدات يكون هذا هو أقصى طول ممكن للمفتاح (ربما سيتم إصلاح هذا في البرامج الثابتة الجديدة). على سبيل المثال:

[R1]rsa peer-public-key test-key2 encoding-type pem
Enter "RSA public key" view, return system view with "peer-public-key end".
NOTE: The number of the bits of public key must be between 769 and 2048.
[R1-rsa-public-key]

يوصى باستخدام المفاتيح العامة لاستبدال كلمات المرور إذا تم إدخال كلمات المرور باستخدام البرامج النصية (مثال: autologon في SecureCRT).

يوصى باستخدام المفاتيح العامة للحماية من نقل كلمة المرور عبر الشبكة.

تستخدم بعض البرامج المفاتيح العامة بشكل افتراضي لمصادقة SSH بدلاً من كلمة المرور (مثال: Ansible).


قائمة المصادر:


  1. ويكيبيديا RSA
  2. التحويل من المعجون إلى SecureCRT باستخدام المصادقة. مفاتيح منتدى SecureCRT
  3. دليل تكوين القشرة الآمنة ، Cisco IOS الإصدار 15E
  4. تنزيل PuTTYgen
  5. وثائق Huawei الرسمية - وصف للتنسيقات الرئيسية المختلفة للاستيراد إلى جهاز توجيه Huawei
  6. Huawei USG 6000 ، تكوين مصادقة المفتاح العام (CLI: مثال لتسجيل الدخول إلى CLI باستخدام STelnet (مصادقة RSA))
  7. Nexus 9000 Configuration guide SSH public key
  8. man ssh-keygen — mac os x.
  9. SSH config file MAC OS X
  10. SSH
  11. SSH config
  12. openssh public key RFC4716

All Articles