تبلیغات
وبلاگ تخصصی لینوکس - انتقال فایل‌ها از طریق scp بدون پسورد!
 
وبلاگ تخصصی لینوکس
درباره وبلاگ


به نام خداوند جان افرین

حکیم سخن در زبان آفرین



من كاربر علاقه مند به لینوكس و فارق التحصیل IT سال 89

در این وبلاگ اطلاعاتی كه در رابطه با لینوكس كسب
می كنم رو خواهم گذاشت تا مورد استفاده دیگران
قرار بگیره

مدیر وبلاگ : azam keimasi
مطالب اخیر
نویسندگان
چهارشنبه 3 مهر 1392 :: نویسنده : azam keimasi
از طریق scp که مخفف secure copy می‌باشد می‌توان انتقال فایل استفاده کرد.
از هردو سرویس SCP و FTPمی‌توان برای انتقال فایل بر روی بستر شبکه LAN/WAN استفاده کرد. با این تفاوت که انتقال فایل در scp امن‌تر است. در انتقال با scp محتویات انتقال رمز‌گذاری می‌شوند در صورتیکه در FTP بصورت clear text است حتی پسورد آن.!

انتقال فایل در حالت عادی با scp به شکل زیر است، که پس از اجرای آن یک پرامپ برای وارد کردن پسورد می‌آید:

scp file.tgz root@SERVER-IP:/tmp

اما درصورتیکه نیاز به گنجاندن این کامند در یک اسکریپت داشته باشیم برای وارد کردن پسورد دچار مشکل می‌شویم. 

روشی که در اینجا به آن اشاره می‌شود برای scp‌ کردن بدون وارد کردن پسورد، استفاده از public key‌می‌باشد.
بدین صورت که یک جفت کلید public/private در سرور local‌  ایجاد می‌کنیم. در ماشین local کلید public‌ ی که ایجاد کرده‌ایم را می‌توانیم به هرکسی بدهیم، اما private key را هرگز!
موضوع جالبی که وجود دارد اینست که هر شخصی می‌تواند هر پیغامی را بوسیله public key شما رمزگذاری کند و فقط شما با استفاده از کلید خصوصی خود آنرا رمزگشایی کنید.

برای ایجاد جفت کلید می‌بایست به شکل زیر عمل کرد:

ssh-keygen -t rsa $
Generating public/private rsa key pair
Enter file in which to save the key ... 
نیاز به وارد کردن پسورد نیست می‌توان [enter] کرد.
Your identification has been saved in ... 
Your public key has been saved in ... 

کلید عمومی و خصوصی ایجاد شده به این نام‌ها هستند:
  • ~/.ssh/id_rsa : identification (private) key
  • ~/.ssh/id_rsa.pub : public key
الان می‌توان کلید عمومی را به هر روشی که مایل باشید به فایل authorized_keys در روت یا home دایرکتوری کاربر دیگری در ماشین یا سرور دوم خود انتقال دهید.
/root/.ssh/authorized_keys

در اینجا از scp برای انتقال آن استفاده می‌کنیم:
scp .ssh/id_rsa.pub root@SERVER-IP:.ssh/authorized_keys

بعضی مواقع فایل authorized_keys در دایرکتوری ssh. وجود ندارد که می‌بایست خودتان اقدام به ساخت آن کنید.
حالا درصورتی که از ماشین اول به دوم ssh‌ یا scp کنیم دیگر از ما پسورد نخواهد پرسید.

در صورتیکه کلید عمومی را در home دایرکتوری کاربر دیگری غیر از root بریزیم نیاز است که کانفیگ فایل ssh را
ادیت کنیم و کاربر را مجاز اعلام کنیم.

$ vi /etc/ssh/.sshd_config
RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile /home/USER/.ssh/authorized_keys


 $ /etc/init.d/sshd restart

$ vi /etc/ssh/.sshd_config

AllowUsers USER



برای انجام کارهای روتین و تکراری نوشتن اسکرپپتی که آنها را بصورت اتوماتیک انجام دهد واقعا ضروری می‌باشد.
در مورد انتقال فایل بین دو سرور نیز که ممکن است بصورت روزانه نیاز به اجرای آن باشد این روش می‌تواند
مفید باشد و نیاز به درج پسورد کاربر ماشین دوم در اسکریپت نیز نخواهد بود. بدین ترتیب نام فایل حاوی اسکریپت
را در crontab می‌گذاریم تا در زمان مورد نظری که تعیین می‌کنیم اجرا شود.




نوع مطلب : کامند در لینوکس، لینوکس، 
برچسب ها : scp، scp script، scp بدون پسورد،
لینک های مرتبط :
پنجشنبه 4 مهر 1392 05:09 ب.ظ
محاله یه پست در مورد اسکریپت نویسی و انجام اتوماتیک کارهای باشه و خوب نباشه. مخصوصاً وقتی با یه دستور مفید شروع بشه :)
دستور scp واقعاً دستور مفیدی هست می‌شه ازش علاوه بر کپی فایل به یک ماشین راه دور در موارد، کپی فایل از یک ماشین دور به ماشین محلی و کپی فایل از یک ماشین راه دور به یک ماشین راه دور دیگه استفاده کرد.
حتی می‌شه با استفاده از آپشن r فولدر‌ها رو هم کپی کرد. :)
azam keimasi دقیقا همینطوره که شما میگید، اسکریپتا خیلی بدرد بخورن دوست عزیز
چهارشنبه 3 مهر 1392 10:12 ب.ظ
خیلی عالیه!

یه گیک کسیه که برای کارهای تکراری وصله بزنه.همون اسکریپت نویسی.
وگرنه گیک نیست
azam keimasi مرسی دوست عزیز از توجهتون
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

برای اجرای یک دستور خاص در زمانی مشخص می‌توانید از دستور at استفاده نمایید. مانند:

$ echo 'cp -r /home/* /data/' | at 12:35

برای خواندن خطوطی در فایل‌های متنی که حاوی کلمه خاصی می‌باشد از دستور grep استفاده نمایید. با اضافه کردن گزینه color-- کلمه ممورد نظر بصورت رنگی علامت‌گذاری خواهد شد. مانند:

$ grep --color word /data/myfile

برای ایجاد یک فایل فشرده شده از یک دایرکتوری خاص می‌توانید از دستور زیر استفاده نمایید: $ tar -czf myarchive.tar.gz dirname