رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش استفاده از SFTP برای انتقال امن فایل با سرور راه دور

آموزش استفاده از SFTP برای انتقال امن فایل با سرور راه دور

در گذشته FTP (File Transfer Protocol) یکی از روش‌های رایج برای انتقال فایل بین دو سیستم بود، اما این پروتکل اطلاعات را رمزنگاری نمی‌کند و به همین دلیل امروزه از نظر امنیتی منسوخ محسوب می‌شود و بیشتر در سیستم‌های قدیمی دیده می‌شود.

در گذشته FTP (File Transfer Protocol) یکی از روش‌های رایج برای انتقال فایل بین دو سیستم بود، اما این پروتکل اطلاعات را رمزنگاری نمی‌کند و به همین دلیل امروزه از نظر امنیتی منسوخ محسوب می‌شود و بیشتر در سیستم‌های قدیمی دیده می‌شود.

در مقابل، SFTP (Secure File Transfer Protocol) یک پروتکل انتقال فایل امن است که روی SSH ساخته شده و تمام داده‌ها را هنگام انتقال رمزنگاری می‌کند. به همین دلیل، در اکثر سناریوها جایگزین امن و استاندارد FTP محسوب می‌شود.

در این راهنما یاد می‌گیرید چگونه از SFTP از طریق خط فرمان برای اتصال به سرور، مدیریت فایل‌ها و انتقال امن داده‌ها استفاده کنید.


نکات کلیدی

  • SFTP بر پایه SSH کار می‌کند و تمام داده‌ها را رمزنگاری می‌کند

  • برای اتصال می‌توانید از رمز عبور یا کلید SSH استفاده کنید

  • شروع اتصال با دستور sftp user@host انجام می‌شود

  • از دستورات مشابه لینوکس مثل ls، cd و pwd پشتیبانی می‌کند

  • برای انتقال فایل از get و put استفاده می‌شود

  • امکان تغییر سطح دسترسی، مالک فایل و ساخت پوشه وجود دارد

  • عملکرد صحیح SFTP وابسته به فعال بودن سرویس SSH است


اتصال به سرور با SFTP

چون SFTP از SSH استفاده می‌کند، اگر بتوانید با SSH وصل شوید، SFTP هم کار خواهد کرد.

تست اتصال SSH

 
ssh user@server_ip

اگر وصل شدید، خارج شوید:

 
exit

شروع جلسه SFTP

 
sftp user@server_ip

اتصال به پورت غیر 22

 
sftp -oPort=2222 user@server_ip

دریافت راهنما داخل SFTP

بعد از اتصال، برای دیدن لیست دستورات:

 
help

یا

 
?

جابجایی بین پوشه‌ها

نمایش مسیر فعلی در سرور

 
pwd

لیست فایل‌های پوشه فعلی

 
ls

نمایش جزئیات بیشتر

 
ls -la

ورود به پوشه

 
cd folderName

دستورات مربوط به سیستم لوکال

در SFTP اگر قبل دستور حرف l بگذارید، روی سیستم خودتان اجرا می‌شود.

دستورکاربرد
lpwdمسیر فعلی در سیستم لوکال
llsلیست فایل‌های لوکال
lcd folderتغییر پوشه لوکال

دانلود فایل از سرور

 
get file.txt

دانلود با نام جدید:

 
get file.txt newname.txt

دانلود پوشه به صورت بازگشتی:

 
get -r folderName

حفظ سطح دسترسی فایل‌ها:

 
get -P file.txt

آپلود فایل به سرور

 
put localfile.txt

آپلود پوشه:

 
put -r folderName

بررسی فضای دیسک سرور

 
df -h

اجرای دستورات لوکال از داخل SFTP

ورود به شل لوکال:

 
!

بازگشت به SFTP:

 
exit

اجرای مستقیم دستور لوکال:

 
!chmod 644 file.txt

تغییر سطح دسترسی و مالک فایل

تغییر مالک (با UID)

 
chown 1001 file.txt

تغییر گروه (با GID)

 
chgrp 1001 file.txt

تغییر سطح دسترسی

 
chmod 755 file.txt

ساخت و حذف پوشه

دستورکاربرد
mkdir folderساخت پوشه روی سرور
lmkdir folderساخت پوشه در لوکال
rm fileحذف فایل
rmdir folderحذف پوشه

بستن اتصال SFTP

 
bye

یا

 
exit

نصب و فعال‌سازی SFTP در لینوکس

Ubuntu / Debian

 
sudo apt update sudo apt install openssh-server sudo systemctl restart ssh

CentOS / RHEL

 
sudo dnf install openssh-server sudo systemctl start sshd sudo systemctl enable sshd

خطاهای رایج و راه‌حل

❌ Permission Denied

کاربر دسترسی نوشتن ندارد

راه‌حل:

 
sudo chown user:group /path sudo chmod 755 /path

❌ Connection Refused / Timed Out

SSH اجرا نمی‌شود یا مشکل شبکه است

 
sudo systemctl status sshd ping server_ip

❌ Host Key Verification Failed

کلید سرور تغییر کرده

 
nano ~/.ssh/known_hosts

خط مربوط به سرور را حذف کنید و دوباره وصل شوید.


❌ SSH Key Authentication Error

سطح دسترسی فایل‌ها اشتباه است

 
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

سوالات متداول

SFTP چیست؟
پروتکل امن انتقال فایل مبتنی بر SSH.

پورت پیش‌فرض؟
22

تفاوت SFTP با FTP؟
SFTP رمزنگاری دارد، FTP ندارد.

چطور فایل آپلود کنم؟
با دستور:

 
put file.txt

جمع‌بندی

SFTP یک روش امن، قابل اعتماد و استاندارد برای انتقال فایل بین سرور و سیستم شماست. اگر قبلاً از FTP یا SCP استفاده می‌کردید، SFTP ترکیبی از امنیت بالا و امکانات مدیریتی بیشتر را در اختیار شما می‌گذارد.

استفاده صحیح از SFTP باعث می‌شود انتقال فایل‌ها در محیط‌های سروری کاملاً امن و قابل کنترل انجام شود.