جدول محتوایی
FTP روش استاندارد برای انتقال فایلها یا سایر دادهها بین رایانهها است، اما در محیط امنیتی امروزی روز به روز منسوخ میشود. خوشبختانه، اینجا جایی است که SFTP وارد می شود، که به ویژه برای کاربران میزبان VPS مفید است.
در این راهنما، ما قصد داریم نحوه استفاده از SFTP برای انتقال امن فایل را نشان دهیم، در مورد برخی از دستورات مفید دیگر صحبت کنیم و در مورد نحوه عملکرد آن بیشتر توضیح دهیم.
بخوانید: بهترین نرم افزار FTP رایگان برای ویندوز، مک و لینوکس
چگونه با استفاده از SFTP متصل شویم؟
SFTP زیرسیستم SSH است. از این رو، از تمام روش های احراز هویت SSH پشتیبانی می کند. در حالی که تنظیم و استفاده از احراز هویت رمز عبور آسانتر است، ایجاد کلیدهای SSH برای ورود به سیستم SFTP بدون رمز عبور بسیار راحتتر و ایمنتر است.
می توانید این آموزش را در مورد نحوه تنظیم کلیدهای SSH خود بررسی کنید. پس از آماده شدن، مراحل زیر را برای اتصال با SFTP دنبال کنید:
- دسترسی SSH خود را با استفاده از یکی از این دستورات بررسی کنید
- پس از انجام این کار، اگر خطایی رخ نداد، جلسه را ترک کنید.
- یک اتصال SFTP را با دستورات زیر شروع کنید:
- اگر از یک پورت SSH سفارشی استفاده می کنید، از یکی از این دستورات برای تغییر پورت SFTP استفاده کنید:
- در اینجا چگونه باید به نظر برسد
پس از اتصال، یک اعلان SFTP را مشاهده خواهید کرد.
چگونه با استفاده از SFTP فایل ها را انتقال دهیم؟
در اینجا قصد داریم نحوه انتقال فایل های راه دور به سیستم محلی با استفاده از SFTP و بالعکس را به شما نشان دهیم.
نکته
همچنین می توانید فایل های خود را با استفاده از کلاینت های SFTP مانند WinSCP یا FileZilla انتقال دهید. اگر به دومی علاقه دارید، آموزش ما را در اینجا بررسی کنید.
انتقال فایل های راه دور از یک سرور به سیستم محلی
برای شروع، بیایید بررسی کنیم که از کدام دایرکتوری کاری محلی و از کدام راه دور استفاده می کنیم. برای انجام این کار، از این دستورات SFTP استفاده می کنیم:
sftp> lpwd Local directory: /LocalDirectory sftp> pwd Remote directory: /RemoteDirectory
اکنون، بیایید ببینیم چگونه با استفاده از دستور get یک فایل را از یک سرور راه دور به دستگاه محلی خود منتقل کنیم. در اینجا نحو اصلی دستور get آمده است:
get /RemoteDirectory/filename.txt
به عنوان مثال، برای کپی کردن فایل /etc/xinetd.conf از سرور راه دور در ماشین محلی خود، باید از:
get /etc/xinetd.conf
پس از تکمیل دانلود، اکنون می توانید متوجه شوید که فایل xinetd.conf در پوشه /user/home دستگاه محلی شما قرار دارد.
برای دانلود چندین فایل با SFTP از دستور mget استفاده کنید. برای دانلود تمام فایلهای موجود در دایرکتوری به نام /etc که دارای پسوند .conf در دایرکتوری فعلی شما هستند، از دستور زیر استفاده میکنید:
mget /etc/*.conf
پس از دانلود، می توانید تمام فایل های *.conf را در فهرست /user/home دستگاه محلی خود پیدا کنید.
انتقال فایل ها از ماشین محلی به یک سرور راه دور
برای کپی کردن یک فایل از ماشین محلی به سرور راه دور، از دستور get دوباره استفاده می کنیم. در این حالت، نحو دستور get به صورت زیر خواهد بود:
get file.txt /RemoteDirectory
برای انتقال فایل example.txt از یک ماشین محلی به ماشین راه دور، دستور زیر را وارد کنید:
put /home/user-name/example.txt /root
اکنون فایل را در دایرکتوری ریشه سرور راه دور پیدا خواهیم کرد. همچنین می توانید با استفاده از دستور mput چندین فایل را انتقال دهید. تقریباً مانند mget عمل می کند:
mput /home/user-name/*.txt /root
این دستور همه فایلهای با پسوند txt را در /home/user-name از ماشین محلی به دایرکتوری ریشه / از راه دور منتقل میکند.
نکته: در نظر داشته باشید که برای دانلود و آپلود فایل ها با SFTP باید دستور put یا get را تایپ کرده و کلید TAB را فشار دهید.
دستورات جهت یابی با SFTP
برخی از دستورات را می توان برای پیمایش در میان سرورهای راه دور و محلی به طور موثرتر با SFTP استفاده کرد. آنها شبیه به مواردی هستند که در اعلان پوسته لینوکس استفاده می کنید.
برای مثال، دستور pwd همیشه مفید است تا به شما اطلاع دهد که در حال حاضر در کدام دایرکتوری فعال هستید.
sftp> pwd Remote directory: /RemoteDirectory
یا
sftp> lpwd Local directory: /LocalDirectory
همچنین میتوانید فهرست فایلها و دایرکتوریهایی را که برای دایرکتوری راه دور استفاده میکنید نمایش دهید:
ls
به طور مشابه، برای فهرست کاری محلی:
lls
به عنوان مثال، خروجی شبیه به این خواهد بود:
Pictures Templates Media Text.txt Documents
برای جابجایی از یک دایرکتوری کاری راه دور به فهرست کاری محلی دیگر، دستورات زیر را وارد کنید:
cd name_of_directory lcd name_of_directory
در نهایت، از ! و از دستورات خارج شوید تا به پوسته محلی برگردید و از SFTP خارج شوید
مبانی نگهداری فایل با استفاده از SFTP
با SFTP، می توانید دایرکتوری ها و فایل ها را با استفاده از دستورات خاص مدیریت کنید.
برای بررسی فضای دیسک سرور راه دور در گیگابایت، از تابع df مانند زیر استفاده کنید:
df -h
در اینجا یک نمونه خروجی آورده شده است:
Filesystem Size Used Avail Use% Mounted on /dev/ploop29212p1 59G 2.5G 56G 5% / none 1.5G 0 1.5G 0% /sys/fs/cgroup none 1.5G 0 1.5G 0% /dev tmpfs 1.5G 0 1.5G 0% /dev/shm tmpfs 1.5G 568K 1.5G 1% /run tmpfs 308M 0 308M 0% /run/user/0
از دستور mkdir برای ایجاد یک دایرکتوری جدید در سرور راه دور و محلی استفاده کنید:
mkdir name_of_directory lmkdir name_of_directory
می توانید با استفاده از دستور rmdir یکی را از سرور راه دور حذف کنید:
rmdir name_of_directory
در همین حال، تغییر نام یک فایل راه دور نیز بسیار ساده است:
rename filename new_filename
در اینجا یک مثال است:
rename Old_FileExample New_FileExample
اگر می خواهید یک فایل راه دور را حذف کنید، از دستور rm استفاده کنید:
rm filename
در حالی که دستور chown برای جایگزینی مالک فایل استفاده می شود:
chown userid filename
userid می تواند یک نام کاربری یا یک شناسه کاربری عددی باشد. برای مثال:
chown UserOne FileExample chown 1234 FileExample
chgrp برای تغییر مالک گروه یک فایل استفاده می شود:
chgrp groupid filename
برای مثال:
chgrp NewGroup FileExample
در نهایت، باید از دستور chmod interactive برای تغییر مجوز یک فایل استفاده کنید:
chmod 764 FileExample
در این مثال، مقدار سه رقمی مربوط به کاربر، گروه و سایر کاربران فایل است
در مورد مجوزهای خواندن (r)، نوشتن (w) و اجرای (x)، مقادیر آنها به ترتیب 4، 2، 1 است. 0 همچنین می تواند برای ارائه بدون مجوز استفاده شود.
برای تخصیص مجوزها، به سادگی کل مقادیر را برای هر کلاس کاربر محاسبه کنید. در اینجا خلاصه ای از مثال آمده است:
chmod ugo FileExample # u represents the User who'll be able to read, write and execute the file. # g is for Groups, here we've given the permission to write and execute the file. # o or Others will only be able to read the file.
فهرست دستورات مفید SFTP
اگر به یک برگه تقلب سریع نیاز دارید، در اینجا لیستی از تمام دستورات SFTP موجود است. شما می توانید این لیست را خودتان با وارد کردن راهنما یا ? فرمان – هر دو نتیجه یکسانی را نشان خواهند داد.
bye Quit sftp cd path Change remote directory to 'path' chgrp [-h] grp path Change group of file 'path' to 'grp' chmod [-h] mode path Change permissions of file 'path' to 'mode' chown [-h] own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-afpR] remote [local] Download file help Display this help text lcd path Change local directory to 'path' lls [ls-options [path]] Display local directory listing lmkdir path Create local directory ln [-s] oldpath newpath Link remote file (-s for symlink) lpwd Print local working directory ls [-1afhlnrSt] [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put [-afpR] local [remote] Upload file pwd Display remote working directory quit Quit sftp reget [-fpR] remote [local] Resume download file rename oldpath newpath Rename remote file reput [-fpR] local [remote] Resume upload file rm path Delete remote file rmdir path Remove remote directory symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell
SFTP چیست؟
SFTP یا به اختصار پروتکل انتقال فایل SSH، راه بسیار امن تری برای انتقال فایل ها است. با استفاده از پروتکل SSH، از رمزگذاری و سایر روش های امنیتی که برای محافظت بهتر از انتقال فایل استفاده می شود، پشتیبانی می کند. این تنها پروتکل امن انتقال فایل است که در برابر حملات در هر نقطه از فرآیند انتقال داده محافظت می کند و آن را به پروتکل ترجیحی تبدیل می کند.
در حین انتقال فایل، تمام داده ها به بسته ها تقسیم می شوند و از طریق یک اتصال امن ارسال می شوند.
اطلاعات حساس هنگام انتقال بین سرویس گیرنده و سرور، رمزگذاری شده و غیرقابل خواندن خواهد شد. به عبارت دیگر، محتوای اصلی (متن ساده) با یک رشته نامنسجم از کاراکترها (متن رمز) جایگزین می شود.
فقط گیرنده ای که کلید رمزگشایی لازم را داشته باشد می تواند محتوای اصلی را ببیند. این از هرگونه دسترسی غیرمجاز در حین انتقال فایل جلوگیری می کند.
پروتکل انتقال فایل معمولی (FTP) دارای دو کانال مختلف برای تبادل داده است – کانال فرمان و کانال داده. در مقابل، SFTP تنها یک کانال رمزگذاری شده دارد که در آن داده ها در بسته های رمزگذاری شده و فرمت شده مبادله می شوند.