در این بخش از سری مطالب آموزش CentOS 7 به نحوه دسترسی SFTP بدون دسترسی به Shell در CentOS 7 خواهیم پرداخت.
SFTP چیست ؟
SFTP یا همان SSH File Transfer Protocol یک پروتکل انتقال فایل است که به صورت پیشفرض پس از تنظیمات SSH بر روی سیستم عامل لینوکس فعال میشود.
با استفاده از SFTP شما قادر خواهید بود فایلهای خود را در یک تونل امن به لینوکس خود منتقل کرده و یا آنها را نیز دریافت نمایید.
نکته : SFTP با پروتکل FTP کاملاً متفاوت است و از سری قوانین و زیرساختهای متفاوتی با FTP تبعیت دارد.
دسترسی به صورت پیشفرض به SFTP زمانی ارائه میشود که یوزر ، به Shell یا همان SSH دسترسی دارد و کنسول دستوری لینوکس را در اختیار خواهد داشت.
حال در این مطلب قصد داریم با سری تنظیماتی که بر روی لینوکس انجام میشود ، دسترسی SFTP بدون دسترسی به Shell در CentOS 7 را آموزش داده تا بتوانید به سادگی به کاربران خود دسترسی انتقال فایل را داده بدون اینکه بتوانند به Shell متصل شوند.
دسترسی SFTP بدون دسترسی به Shell در CentOS 7
1- ابتدا از طریق SSH و یوزر Root به لینوکس خود متصل شوید.
2- سپس دستورات زیر را وارد کرده تا یک نام کاربری جدید تعریف شود و پسورد برای آن در نظر گرفته شود.
adduser abtin
passwd abtin
پس از وارد کردن دستور دوم ، دوبار پسورد یوزر Abtin را وارد کنید تا پسورد بر روی یوزر تنظیم شود.
3- حال یک دایرکتوری برای دسترسی به SFTP برای یوزر مورد نظر ایجاد نمایید.
mkdir -p /var/sftp/uploads
در این دستور یک دایرکتوری با نام SFTP ایجاد شده و در داخل آن یک دایرکتوری دیگر با نام uploads ایجاد میگردد.
4- با دستور زیر مجوز دسترسی به این دایرکتوریها را به یوزر root بدهید.
chown root:root /var/sftp
5- سپس دسترسی مورد نیاز برای انتقال فایل را به یوزر مورد نظر بر روی دایرکتوری uploads بدهید.
chown abtin:abtin /var/sftp/uploads
6- حال در ادامه به تنظیم دسترسی SFTP یوزر Abtin تنها به دایرکتوری uploads خواهیم پرداخت تا پس از متصل شدن یوزر Abtin به SFTP ، تنها به یک دایکتوری مشخص متصل شود و سایر دایرکتوریها را مشاهده ننماید.
- برای این امر ابتدا فایل تنظیمات SSH را با ویرایشگر Nano و یا ویرایشگر مورد نظر خود باز کنید.
nano /etc/ssh/sshd_config
- سپس در انتهای فایل ، عبارات زیر را کپی نمایید.
Match User abtin
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
در نظر داشته باشید که در بخش Match User باید نام کاربری ایجاد شده را وارد کرده و در بخش ChrootDirectory نیز آدرس دایرکتوری ایجاد شده برای این کاربر را نیز وارد کنید.
- سپس فایل را ذخیره کرده و از آن خارج شوید.
7- حال برای اعمال تغییرات بر روی سرویس SSH ، این سرویس را یک بار ریستارت نمایید.
systemctl restart sshd
8- حال شما میتوانید از طریق نرم افزار WinSCP و با یوزر ایجاد شده به لینوکس خود متصل شوید.
برای نحوه عملکرد و آموزش نرم افزار WinSCP به مطلب آموزش استفاده از نرم افزار WinSCP نیز مراجعه نمایید.
همچنین در نظر داشته باشید با استفاده از دستور sftp از یک لینوکس دیگر نیز شما قادر به ارتباط با CentOS 7 خود خواهید بود.
امیدواریم در پایان از آموزش دسترسی SFTP بدون دسترسی به Shell در CentOS 7 استفاده لازم را برده باشید.
در مطالب بعدی به نحوه این تنظیمات در لینوکس ابونتو و دبیان خواهیم پرداخت.
کاربر گرامی شما میتوانید سؤالات مربوط به این آموزش را در بخش کامنتها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید و یا برای رفع مشکلات دیگر در زمینه آموزشهای آذرآنلاین به بخش Community مراجعه کرده و مشکل خود را در آن مطرح نمایید تا در اسرع وقت کاربران دیگر و کارشناسان به سؤالات شما پاسخ دهند.