إعداد SFTP والتحقق منه باستخدام مصادقة المفتاح العمومي على العملاء والخوادم
وسط
- نوافذ
-
- ويندوز 10 برو
- خادم ويندوز 2019
- ويندوز 7
- ويندوز سيرفر 2012 R2
- فتح SH
-
- 7.7p1
- 8.1p1 - بيتا
※ يعمل في إصدارات أخرى، ولكن غير مؤكد
في البداية
آخر مرة، قمت بإعداد ملقم SFTP للتحقق من مصادقة كلمة المرور التي تسمح لك بإرسال الملفات وتلقيها. هذه المرة، يرسل sftp ويتلقى الملفات باستخدام مصادقة المفتاح العمومي.
التحضير مقدما
- العميل لديه عميل OpenSSH مثبت
- الملقم يحتوي على ملقم OpenSSH مثبت.
- يبدأ الملقم خدمة OpenSSH ويتم تحرير المنفذ 22.
إنشاء مفاتيح خاصة وعامة في العميل
تسجيل الدخول إلى العميل. يمكن أيضا إنشاء المفاتيح الخاصة والعامة على جانب الملقم، ولكن المفتاح الخاص سيكون العميل وسيتم الاحتفاظ بالمفتاح العام من قبل الخادم. إنشاء على جانب العميل.
بدء PowerShell مع حقوق المسؤول.
إنشاء ملف، انتقل إلى أي مجلد مع الأمر cd، واكتب الأمر التالي:
ssh-keygen -t rsa -f id_rsa
يمكنك وضع عبارة مرور (كلمة المرور) في المفتاح، لذا يرجى وضعها إذا لزم الأمر.
إذا تم إنشاء المفتاح بنجاح، يتم إنشاء المفاتيح العامة والخاصة في المجلد كما يلي: "id_rsa" هو المفتاح الخاص و "id_rsa.pub" هو المفتاح العام.
وضع مفتاح عمومي على الخادم
تسجيل الدخول إلى Windows باستخدام حساب SFTP الخاص بك للملقم.
الرجاء وضع المفتاح العمومي الذي تم إنشاؤه "id_rsa.pub" في المجلد التالي على الملقم. 「. إذا لم يكن لديك مجلد "ssh" ، يرجى إنشاء واحد. أيضا، تغيير اسم الملف إلى "authorized_keys". (استبدل <> باسم المستخدم الذي تسجل الدخول باستخدام SFTP.)
- C:\المستخدمون\< اسم المستخدم>\.ssh
لاحظ أنه يجب أن يكون للمستخدمين الذين لديهم "المسؤولين" أو مستخدمي SFTP حق الوصول إلى هذا الملف فقط. تفشل اتصالات Sftp دائما إذا كان لدى المستخدمين الآخرين حق الوصول. على سبيل المثال، لدى NG مجموعة من المستخدمين أو الجميع ملحقة بالإذن.
في هذا المثال، ". حقوق الوصول إلى المجلد "ssh" هي "المجموعة:SYSTEM" و "المجموعة: المسؤولين" و "المستخدم: sftptest". إذا تعذر إزالة إذن، تعطيل توريث الإذن.
تمكين مصادقة المفتاح العمومي على الخادم
تسجيل الدخول إلى الملقم مع المستخدمين أذونات المسؤولين ثم قم بفتح المجلدات التالية:
- جيم:\برنامجData\ssh
نظرا لوجود ملف يسمى "sshd_config"، قم بنسخه وتغيير اسم الملف إلى "sshd_config_default" وإعداد نسخة احتياطية.
فتح "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.
إرسال الملفات وتلقيها من العملاء باستخدام مصادقة المفتاح العمومي
ضع المفتاح الخاص "id_rsa" الذي قمت بإنشائه قبل الاتصال مع SFTP في مجلد يمكن الوصول إليه فقط للمستخدم الذي يقوم بتشغيل SFTP. لاحظ أن اتصالات sftp ستفشل إذا وضعت في مجلد يمكن الوصول إليها من قبل مستخدمين آخرين. خاصة إذا كان المجلد لديه أذونات لمجموعات Users و Everyone، فهو NG.
في الأساس، فمن المستحسن لأنه سوف يشير تلقائيا إلى المسار إذا كنت وضعه في المجلد التالي.
- C:\المستخدمون\< اسم المستخدم>\.ssh
العميل ". حقوق الوصول إلى المجلد "ssh" هي "المجموعة:SYSTEM" و "المجموعة: المسؤولين" و "المستخدم: < تسجيل الدخول المستخدم >".
إذا كنت ترغب في الوصول إلى sftp باستخدام المفتاح الخاص اكتب الأمر كما يلي (استبدال <>): إذا قمت بإعداد عبارة مرور، فأدخل عبارة مرور أيضا.
sftp -i id_rsa <ユーザー名>@<サーバー名>
إذا قمت بتسجيل الدخول بنجاح، سيتم تبديل إلى عرض المستخدم الذي قام بتسجيل الدخول.
يمكنك أيضا التحقق من أنه يمكنك تسجيل الدخول باستخدام الأمر dir.
الآن بعد أن قمت بإعداد ملف يسمى "test3.txt"، إرسال الملف مع الأمر وضع.
put c:\temp\test3.txt
إذا نظرت إلى المجلد C:\Users\sftptest من جانب الخادم، يمكنك مشاهدة أن ملف test3.txt يتم إرساله.
حاول الحصول على من العميل.
get test3.txt c:\temp\test4.txt
كنت قادرا على تأكيد أن الملف كان يمكن الحصول عليها.
ملخص
كنت قادرا على إرسال واستقبال الملفات بواسطة SFTP باستخدام مصادقة المفتاح العمومي. باستخدام مفتاح عام، لن يكون الجانب الملقم قادرا على معرفة كلمة المرور. يسمح لك بتبادل الملفات بشكل أكثر أمانا من مصادقة كلمة المرور.