FTP یا File Transfer Protocol به طور گسترده برای انتقال فایل ها یا داده ها به شکل رمزگذاری نشده که امنیت پایینی برای ارتباط دارد، استفاده می شود. همانطور که می دانیم FTP در همه ی موارد امن نیست به دلیل اینکه تمام انتقالات به صورت متنی ساده منتقل می شوند و داده می تواند به دست هر کسی که در شبکه پکت ها را sniff میکند برسد.
بنابراین FTP اولیه برای موارد محدودی می تواند استفاده شود.در طول دوره، از زمان SCP و SSH ابهام این امنیت برطرف شد و لایه ی امنیتی رمزگذاری شده ای که داده ها را بین کامپیوترها انتقال میداد، اضافه شد.
پروتکل SFTP تحت پروتکل SSH برروی پورت استاندارد 22 برای انتشار ارتباطات امن اجرا می شود. SFTP بررروی بسیاری از ابزار گرافیکی پیاده شده است. (FileZilla ,WinSCP ,FireSCP, …).
هشدار امنیتی : لطفا پورت SSH را به طور کلی باز نکنید، چرا که این به عنوان یک نقص امنیتی محسوب می شود. شما می توانید آنرا برای IP خاصی باز کنید که میخواهید از طریق آن آی پی فایل های خود را انتقال دهید.
در این مقاله 10 نمونه از دستورات sFTP برای انتقال فایل ها از طریق خط فرمان به شما نشان خواهیم داد.
1 . نحوه ی کانکت شدن به SFTP
به طور پیش فرض از پروتکل SSH برای امنیت ارتباطات SFTP استفاده می شود. برای شروع یک SFTP session، نام کاربری و نام هاست یا آدرس آی پی را در خط فرمان وارد کنید. هنگامیکه احراز هویت انجام شد شما یک خط فرمان به شکل sftp> خواهید دید.
2 . استفاده از راهنما
هنگامیکه شما در خط فرمان sftp هستید، دستورات قابل دسترس را می توانید با استفاده از ? یا help مشاهده کنید.
3 . بررسی دایرکتوری جاری
دستور lpwd برای بررسی دایرکتوری محلی جاری که در آن هستید، استفاده می شود، و دستور pwd برای بررسی دایرکتوری ریموت جاری استفاده می شود.
Lpwd : دایرکتوری جاری برروی سیستم خودتان را چاپ میکند.
Pwd : دایرکتوری جاری برروی سرور ftp را چاپ می کند.
4 . لیست کردن فایل ها
فایل ها را در سیستم محلی خود و همچنین در سیستم ریموت لیست کنید.
برروی سیستم ریموت
برروی سیستم محلی
5 . آپلود کردن فایل ها
فایل هایی را در سیستم ریموت با استفاده از دستور زیر آپلود کنید.
6 . دانلود کردن فایل ها
یک فایل را برروی سیستم خود دانلود کنید.
برای گرفتن چندین فایل از دستور زیر استفاده کنید.
نکته : همانطور که مشاهده می شود ، به طور پیش فرض دستور get فایل را در سیستم محلی با همان نام دانلود می کند، ما می توانیم فایل ریموت را با نام دیگری که در انتهای دستور می نویسیم، دانلود کنیم.
7 . جابجایی بین دایرکتوری ها
برای جابجا شدن بین دایرکتوری ها در سیستم محلی و ریموت به صورت زیر استفاده کنید.
برروی سیستم ریموت
برروی سیستم محلی
8 . ایجاد دایرکتوری ها
برای ایجاد دایرکتوری جدید برروی سیستم محلی و ریموت از دستورات زیر استفاده کنید.
9 . حذف دایرکتوری ها
برای حذف دایرکتوری برروی سیستم محلی و ریموت از دستورات زیر استفاده کنید.
نکته : برای حذف دایرکتوری از سیستم ریموت دایرکتوری باید خالی باشد.
10 . خارج شدن از شل SFTP
دستور "!" ما را به شل محلی می برد، جایی که می توانیم دستورات لینوکس را اجرا کنیم. و برای بازگشتن به محیط sftp> دستور exit را اجرا کنید.
همچنین توصیه میشود مطالعه کنید :
دستور پیشرفته copy در لینوکس برای نمایش میزان پیشرفت کپی فایل ها و دایرکتوری های بزرگ
دستور pv برای مانیتور روند کپی، بک آپ و فشرده سازی اطلاعات در لینوکس
pscp - انتقال/کپی فایل ها به چندین سرور لینوکس با استفاده از تنها یک شل
10 نمونه از دستور scp برای انتقال فایل ها و فولدرها در لینوکس
10 مثال از دستور Rsync در لینوکس
دستورات nc و pv برای انتقال فایل ها بین دو کامپیوتر
با آرزوی موفقیت :)
بنابراین FTP اولیه برای موارد محدودی می تواند استفاده شود.در طول دوره، از زمان SCP و SSH ابهام این امنیت برطرف شد و لایه ی امنیتی رمزگذاری شده ای که داده ها را بین کامپیوترها انتقال میداد، اضافه شد.
پروتکل SFTP تحت پروتکل SSH برروی پورت استاندارد 22 برای انتشار ارتباطات امن اجرا می شود. SFTP بررروی بسیاری از ابزار گرافیکی پیاده شده است. (FileZilla ,WinSCP ,FireSCP, …).
هشدار امنیتی : لطفا پورت SSH را به طور کلی باز نکنید، چرا که این به عنوان یک نقص امنیتی محسوب می شود. شما می توانید آنرا برای IP خاصی باز کنید که میخواهید از طریق آن آی پی فایل های خود را انتقال دهید.
در این مقاله 10 نمونه از دستورات sFTP برای انتقال فایل ها از طریق خط فرمان به شما نشان خواهیم داد.
1 . نحوه ی کانکت شدن به SFTP
به طور پیش فرض از پروتکل SSH برای امنیت ارتباطات SFTP استفاده می شود. برای شروع یک SFTP session، نام کاربری و نام هاست یا آدرس آی پی را در خط فرمان وارد کنید. هنگامیکه احراز هویت انجام شد شما یک خط فرمان به شکل sftp> خواهید دید.
کد PHP:
[root@linux-zone ~]# sftp linuxzone@27.48.137.6
Connecting to 27.48.137.6...
linuxzone@27.48.137.6's password:
sftp>
2 . استفاده از راهنما
هنگامیکه شما در خط فرمان sftp هستید، دستورات قابل دسترس را می توانید با استفاده از ? یا help مشاهده کنید.
کد PHP:
sftp> ?
Available commands:
cd path Change remote directory to 'path'
lcd path Change local directory to 'path'
chgrp grp path Change group of file 'path' to 'grp'
chmod mode path Change permissions of file 'path' to 'mode'
chown own path Change owner of file 'path' to 'own'
help Display this help text
get remote-path [local-path] Download file
lls [ls-options [path]] Display local directory listing
ln oldpath newpath Symlink remote file
lmkdir path Create local directory
lpwd Print local working directory
ls [path] Display remote directory listing
lumask umask Set local umask to 'umask'
mkdir path Create remote directory
put local-path [remote-path] Upload file
pwd Display remote working directory
exit Quit sftp
quit Quit sftp
rename oldpath newpath Rename remote file
rmdir path Remove remote directory
rm path Delete remote file
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
3 . بررسی دایرکتوری جاری
دستور lpwd برای بررسی دایرکتوری محلی جاری که در آن هستید، استفاده می شود، و دستور pwd برای بررسی دایرکتوری ریموت جاری استفاده می شود.
کد PHP:
sftp> lpwd
Local working directory: /
کد PHP:
sftp> pwd
Remote working directory: /linuxzone/
Pwd : دایرکتوری جاری برروی سرور ftp را چاپ می کند.
4 . لیست کردن فایل ها
فایل ها را در سیستم محلی خود و همچنین در سیستم ریموت لیست کنید.
برروی سیستم ریموت
کد PHP:
sftp> ls
برروی سیستم محلی
کد PHP:
sftp> lls
5 . آپلود کردن فایل ها
فایل هایی را در سیستم ریموت با استفاده از دستور زیر آپلود کنید.
کد PHP:
sftp> mput *.xls
6 . دانلود کردن فایل ها
یک فایل را برروی سیستم خود دانلود کنید.
کد PHP:
sftp> get SettlementReport_1-10th.xls
Fetching /linuxzone/SettlementReport_1-10th.xls to SettlementReport_1-10th.xls
کد PHP:
sftp> mget *.xls
7 . جابجایی بین دایرکتوری ها
برای جابجا شدن بین دایرکتوری ها در سیستم محلی و ریموت به صورت زیر استفاده کنید.
برروی سیستم ریموت
کد PHP:
sftp> cd test
sftp>
کد PHP:
sftp> lcd Documents
8 . ایجاد دایرکتوری ها
برای ایجاد دایرکتوری جدید برروی سیستم محلی و ریموت از دستورات زیر استفاده کنید.
کد PHP:
sftp> mkdir test
کد PHP:
sftp> lmkdir Documents
9 . حذف دایرکتوری ها
برای حذف دایرکتوری برروی سیستم محلی و ریموت از دستورات زیر استفاده کنید.
کد PHP:
sftp> rm Report.xls
کد PHP:
sftp> rmdir sub1
10 . خارج شدن از شل SFTP
دستور "!" ما را به شل محلی می برد، جایی که می توانیم دستورات لینوکس را اجرا کنیم. و برای بازگشتن به محیط sftp> دستور exit را اجرا کنید.
کد PHP:
sftp> !
[root@sftp ~]# exit
Shell exited with status 1
sftp>
همچنین توصیه میشود مطالعه کنید :
دستور پیشرفته copy در لینوکس برای نمایش میزان پیشرفت کپی فایل ها و دایرکتوری های بزرگ
دستور pv برای مانیتور روند کپی، بک آپ و فشرده سازی اطلاعات در لینوکس
pscp - انتقال/کپی فایل ها به چندین سرور لینوکس با استفاده از تنها یک شل
10 نمونه از دستور scp برای انتقال فایل ها و فولدرها در لینوکس
10 مثال از دستور Rsync در لینوکس
دستورات nc و pv برای انتقال فایل ها بین دو کامپیوتر
با آرزوی موفقیت :)