إعداد SFTP والتحقق منه باستخدام مصادقة المفتاح العمومي على العملاء والخوادم

تاريخ إنشاء الصفحة :

وسط

نوافذ
  • ويندوز 10 برو
  • خادم ويندوز 2019
  • ويندوز 7
  • ويندوز سيرفر 2012 R2
فتح SH
  • 7.7p1
  • 8.1p1 - بيتا

※ يعمل في إصدارات أخرى، ولكن غير مؤكد

في البداية

آخر مرة، قمت بإعداد ملقم SFTP للتحقق من مصادقة كلمة المرور التي تسمح لك بإرسال الملفات وتلقيها. هذه المرة، يرسل sftp ويتلقى الملفات باستخدام مصادقة المفتاح العمومي.

التحضير مقدما

  • العميل لديه عميل OpenSSH مثبت
  • الملقم يحتوي على ملقم OpenSSH مثبت.
  • يبدأ الملقم خدمة OpenSSH ويتم تحرير المنفذ 22.

إنشاء مفاتيح خاصة وعامة في العميل

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

بدء PowerShell مع حقوق المسؤول.

image

إنشاء ملف، انتقل إلى أي مجلد مع الأمر cd، واكتب الأمر التالي:

ssh-keygen -t rsa -f id_rsa

يمكنك وضع عبارة مرور (كلمة المرور) في المفتاح، لذا يرجى وضعها إذا لزم الأمر.

image

إذا تم إنشاء المفتاح بنجاح، يتم إنشاء المفاتيح العامة والخاصة في المجلد كما يلي: "id_rsa" هو المفتاح الخاص و "id_rsa.pub" هو المفتاح العام.

image

image

وضع مفتاح عمومي على الخادم

تسجيل الدخول إلى Windows باستخدام حساب SFTP الخاص بك للملقم.

الرجاء وضع المفتاح العمومي الذي تم إنشاؤه "id_rsa.pub" في المجلد التالي على الملقم. 「. إذا لم يكن لديك مجلد "ssh" ، يرجى إنشاء واحد. أيضا، تغيير اسم الملف إلى "authorized_keys". (استبدل <> باسم المستخدم الذي تسجل الدخول باستخدام SFTP.)

  • C:\المستخدمون\< اسم المستخدم>\.ssh

image

لاحظ أنه يجب أن يكون للمستخدمين الذين لديهم "المسؤولين" أو مستخدمي SFTP حق الوصول إلى هذا الملف فقط. تفشل اتصالات Sftp دائما إذا كان لدى المستخدمين الآخرين حق الوصول. على سبيل المثال، لدى NG مجموعة من المستخدمين أو الجميع ملحقة بالإذن.

في هذا المثال، ". حقوق الوصول إلى المجلد "ssh" هي "المجموعة:SYSTEM" و "المجموعة: المسؤولين" و "المستخدم: sftptest". إذا تعذر إزالة إذن، تعطيل توريث الإذن.

تمكين مصادقة المفتاح العمومي على الخادم

تسجيل الدخول إلى الملقم مع المستخدمين أذونات المسؤولين ثم قم بفتح المجلدات التالية:

  • جيم:\برنامجData\ssh

نظرا لوجود ملف يسمى "sshd_config"، قم بنسخه وتغيير اسم الملف إلى "sshd_config_default" وإعداد نسخة احتياطية.

image

فتح "sshd_config" في محرر النص الذي تم إطلاقه بامتيازات المسؤول.

لتمكين مصادقة المفتاح العمومي، قم بتغييره كما يلي:

#PubkeyAuthentication yes

↓↓↓

PubkeyAuthentication yes

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

#PasswordAuthentication yes

↓↓↓

PasswordAuthentication no

أريد أن وضع مفتاح عام لكل حساب SFTP، لذلك سوف أعلي السطر التالي:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

↓↓↓

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

إذا كنت تريد تحديد الدليل الجذر لكل حساب SFTP إضافة السطر التالي: اعتمادا على ما إذا كنت تحدد هذا أم لا، عند تحديد مسار مجلد من العميل، قد يتغير إلى تنسيق "C:\xxxxx" أو "/xxxxx".

Match User <ユーザー名>
       ChrootDirectory <フォルダパス>

مثل

Match User TestUser
       ChrootDirectory C:\Users\TestUser

بعد حفظ sshd_config، أعد تشغيل ملقم OpenSSH.

image

إرسال الملفات وتلقيها من العملاء باستخدام مصادقة المفتاح العمومي

ضع المفتاح الخاص "id_rsa" الذي قمت بإنشائه قبل الاتصال مع SFTP في مجلد يمكن الوصول إليه فقط للمستخدم الذي يقوم بتشغيل SFTP. لاحظ أن اتصالات sftp ستفشل إذا وضعت في مجلد يمكن الوصول إليها من قبل مستخدمين آخرين. خاصة إذا كان المجلد لديه أذونات لمجموعات Users و Everyone، فهو NG.

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

  • C:\المستخدمون\< اسم المستخدم>\.ssh

العميل ". حقوق الوصول إلى المجلد "ssh" هي "المجموعة:SYSTEM" و "المجموعة: المسؤولين" و "المستخدم: < تسجيل الدخول المستخدم >".

إذا كنت ترغب في الوصول إلى sftp باستخدام المفتاح الخاص اكتب الأمر كما يلي (استبدال <>): إذا قمت بإعداد عبارة مرور، فأدخل عبارة مرور أيضا.

sftp -i id_rsa <ユーザー名>@<サーバー名>

image

إذا قمت بتسجيل الدخول بنجاح، سيتم تبديل إلى عرض المستخدم الذي قام بتسجيل الدخول.

image

يمكنك أيضا التحقق من أنه يمكنك تسجيل الدخول باستخدام الأمر dir.

image

الآن بعد أن قمت بإعداد ملف يسمى "test3.txt"، إرسال الملف مع الأمر وضع.

put c:\temp\test3.txt

image

إذا نظرت إلى المجلد C:\Users\sftptest من جانب الخادم، يمكنك مشاهدة أن ملف test3.txt يتم إرساله.

image

حاول الحصول على من العميل.

get test3.txt c:\temp\test4.txt

image

كنت قادرا على تأكيد أن الملف كان يمكن الحصول عليها.

image

ملخص

كنت قادرا على إرسال واستقبال الملفات بواسطة SFTP باستخدام مصادقة المفتاح العمومي. باستخدام مفتاح عام، لن يكون الجانب الملقم قادرا على معرفة كلمة المرور. يسمح لك بتبادل الملفات بشكل أكثر أمانا من مصادقة كلمة المرور.