docs:scp
اختلافات
عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.
جانبي المراجعة السابقةالمراجعة السابقةالمراجعة التالية | المراجعة السابقة | ||
docs:scp [2008/06/04 10:20] – dabash | docs:scp [2015/04/23 03:20] (حالي) – تحرير خارجي 127.0.0.1 | ||
---|---|---|---|
سطر 1: | سطر 1: | ||
+ | {{tag> | ||
+ | ~~ODT~~ | ||
+ | ====== الاستغناء عن كلمات السر مع الامر scp ====== | ||
+ | |||
+ | * تأليف ديف | ||
+ | * ترجمة زياد حسين دبش | ||
+ | * المقال الأصلي مجلة لينكس http:// | ||
+ | |||
+ | تعلم كيفية نشر ملفات بسرعة واخذ نسخ احتياطية بسهولة عند تجهيز امر النسخ للعمل دون الحاجة الى كلمات السر. | ||
+ | |||
+ | في هذه المادة ، أنا اوضح لكم كيفية استخدام الامر '' | ||
+ | |||
+ | اذا كنت مشرف على انظمة لينكس ، فأنت غالبا ما تحتاج الى نسخ ملفات لينكس من جهاز الى آخر. أو ، قد تحتاج لتوزيع الملف الى اجهزة متعددة. يمكنك استخدام بروتوكول نقل الملفات FTP، ولكن | ||
+ | |||
+ | ولكن ماافضله واحبه بخصوص scp انه قابل للتنفيذ داخل النصوص التنفيذية بسهولة (scriptable) . لنفترض انك بحاجة الى توزيع الملف الى 100 جهازيعمل بالينكس. | ||
+ | |||
+ | اليك مثالا يدل التركيب الاساسي لـ scp. | ||
+ | | ||
+ | |||
+ | < | ||
+ | |||
+ | scp abc.tgz root@bozo:/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | | ||
+ | |||
+ | 1- عليك ان تحدد من من المستخدمين على الجهاز سيستخدم امر scp في وقت لاحق. وبطبيعة الحال ،المستخدم الجذر(root) | ||
+ | |||
+ | 2- انشاء المفتاح العام / | ||
+ | |||
+ | < | ||
+ | ssh-keygen -t rsa | ||
+ | </ | ||
+ | |||
+ | -3.وردا على ذلك ، يجب أن ترى التالي | ||
+ | |||
+ | < | ||
+ | .Generating public/ | ||
+ | Enter file in which to save the key ... | ||
+ | </ | ||
+ | اضغط زر الادخال لقبول هذا. | ||
+ | |||
+ | 4.وردا على ذلك ، يجب أن ترى | ||
+ | |||
+ | لست بحاجة الى كلمة مرور ، لذ قم بالضغط على مفتاح الادخال مرتين ): | ||
+ | |||
+ | 5. وردا على ذلك ، يجب أن ترى | ||
+ | |||
+ | < | ||
+ | Your identification has been saved in ... | ||
+ | Your public key has been saved in ... | ||
+ | |||
+ | </ | ||
+ | ملاحظه اسم ومكان المفتاح العمومي ولدت للتو. ودائما تنتهي بامتداد pub | ||
+ | |||
+ | 6-انسخ المفتاح العام الذي انشىء للتو الى جميع اجهزة لينكس . يمكنك استخدام بروتوكول نقل الملفات FTP او scp او اي شىء لنسخة. على افتراض انك تستخدم الجذر -- (مرة اخرى ، انظر التحذير في الخطوة 1 اعلاه )-- المفتاح العام يجب ان يكون في الملف | ||
+ | '' | ||
+ | . اما ، اذا كنت | ||
+ | '' | ||
+ | . لاحظ بأن الملف authorized_keys | ||
+ | |||
+ | الآن ، مع القليل من الحظ ، يجب ان تكون قادر علىنسخ الملفات بستخدام | ||
+ | |||
+ | < | ||
+ | scp xyz.tgz root@bozo:/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | نجحت -- مع انها لم تطلب كلمة السر! | ||
+ | |||
+ | اود ان انوه بكلمة عن الأمن قبل ان نكمل الموضوع. هذا الجهاز اصبح بقوة خطيرة ، لانه الان يستطيع الوصول الى جميع الحواسيب الشخصيه عن بعد | ||
+ | |||
+ | الآن الجزء الممتع. دعنا نكتب نص قصير لنسخ ملف يدعا هوديني من جهاز الى مجلد tmp/ موجود على عشرة اجهزة | ||
+ | | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | #!/bin/sh | ||
+ | for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk | ||
+ | tokyo | ||
+ | do | ||
+ | scp houdini root@$CITY:/ | ||
+ | echo $CITY " is copied" | ||
+ | done | ||
+ | |||
+ | </ | ||
+ | |||
+ | انها تعمل كالسحر. وتمشيا مع صدى في هذا النص ، يجب ان تكون قادر على مراقبة كلما انتهى من النسخ لمدينة | ||
+ | |||
+ | بالمناسبة ، اذا كنت جديدا على كتابه الشل | ||
+ | |||
+ | وكما تعلمون ، scp هو جزء واحد فقط من نطاق واسع بكثير لبرنامج ssh. واليك الجزء الرائع : عندما كنت تتبع الخطوات الستة | ||
+ | < | ||
+ | ssh brooklyn " | ||
+ | |||
+ | </ | ||
+ | |||
+ | دعنا الآن لنضع | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | |||
+ | # Variables are upper case for clarity | ||
+ | |||
+ | # before using the script you need to create a dir called '/ | ||
+ | on each | ||
+ | # remote box & a dir called '/ | ||
+ | |||
+ | |||
+ | # on this local PC | ||
+ | # Set the variable " | ||
+ | # | ||
+ | DATE=$(date +%b%d) | ||
+ | |||
+ | # this 'for loop' has 3 separate functions | ||
+ | |||
+ | for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk | ||
+ | tokyo | ||
+ | do | ||
+ | |||
+ | # remove tarball on remote box from the previous time the script ran # | ||
+ | to avoid filling up your HD | ||
+ | # then echo it for troubleshooting | ||
+ | # | ||
+ | ssh -1 $CITY "rm -f / | ||
+ | echo $CITY " old tarball removed" | ||
+ | |||
+ | # create a tarball of the /home dir on each remote box & put it in | ||
+ | / | ||
+ | # name the tarball uniquely with the date & city name | ||
+ | # | ||
+ | ssh $CITY "tar -zcvpf / | ||
+ | echo $CITY " is tarred" | ||
+ | |||
+ | # copy the tarball just create from the remote box to the / | ||
+ | dir on | ||
+ | # the local box | ||
+ | # | ||
+ | scp root@$CITY:/ | ||
+ | echo $CITY " is copied" | ||
+ | |||
+ | |||
+ | done | ||
+ | </ | ||
+ | <code bash> | ||
+ | # the rest of the script is for error checking only, so it's optional: | ||
+ | |||
+ | # on this local PC | ||
+ | # create error file w todays date. | ||
+ | # If any box doesn' | ||
+ | # | ||
+ | touch / | ||
+ | |||
+ | for CITY in brooklyn oshkosh paris bejing winslow rio gnome miami minsk | ||
+ | tokyo | ||
+ | |||
+ | do | ||
+ | |||
+ | # Check if tarball was copied to local box. If not write to error file | ||
+ | # note the use of ' | ||
+ | is not # true | ||
+ | # | ||
+ | ls / | ||
+ | scp_error_$DATE | ||
+ | |||
+ | |||
+ | # Check if tarball can be opened w/o errors. If errors write to error file. | ||
+ | tar ztvf / | ||
+ | Good" >> scp_error_$DATE | ||
+ | done | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | في هذه الموضوع ، حاولت اعطاء الامثله التي تبرهن على مفاهيم ليست بالضروره جاهزه للاستخدام " | ||
docs/scp.txt · آخر تعديل: 2015/04/23 03:20 (تحرير خارجي)