آموزش کامل SSH
SSH:
مخفف Secure Shell میباشد که برای دسترسی از راه دور به سرور میباشد. در این پست بهتون نحوه نصب، کانفیگ و استفاده SSH را می آموزیم.
میتوانید فیلم زیر را مشاهده و دانلود نمایید یا طبق آموزشی متنی زیر فیلم پیش بروید.
دانلود فیلم آموزشی نحوه نصب، کانفیگ و استفاده از سرویس SSH
SSH را میتوان بر روی تمامی توزیع های لینوکس نصب و استفاده کرد.برای نصب کافیست طبق مراحل زیر عمل کنید.
نکته : در توزیع CentOS به صورت خودکار SSH نصب و فعال میباشد.
در توزیع های خانواده ردهت مانند Centos , Fedora و ..کافیست بسته openssh را با دستور زیر نصب کنید.
sudo yum install openssh
برای استارت کردن سرویس SSH دستور زیر را اجرا کنید.
sudo servie sshd start
برای اینکه همیشه نیاز نباشه سرویس SSH را ران کنید از دستور زیر استفاده کنید.
sudo chkconfig sshd on
در ArchLinux و توزیع های بر پایه آرچ لینوکس کافیست بسته openssh را با دستور زیر نصب کنید.
sudo pacman -S openssh
در ubuntu و توزیع های خانواده دبیانکافیست بسته openssh-server را با دستور زیر نصب کنید.
sudo apt-get install openssh-server
در ابونتو و آرچ لینوکس برای استارت کردن سرویس SSH و اینکه همیشه نیاز نباشه سرویسش رو استارت کنید از دستورات زیر استفاده کنید.
sudo systemctl start sshd.service sudo systemctl enable sshd.service
نکته : اگر دسترسی روت به سرور دارید نیازی به زدن sudo اول دستور نیست.
خب وقتشه بریم سراغ اینکه چطوری میتونیم با استفاده از SSH به سرور خودمون متصل بشیم
اگر لینوکس دارید و کاربر لینوکس هست کافی هست ترمینال رو باز کنید و به صورت زیر عمل کنید
ssh user@ip -p port
با استفاده از دستور ssh در لینوکس میتوانید به سرور خود متصل گردید.(در مک هم نیز جواب گو هست)
user: نام کابری شما
ip: ای پی سرور شما
-p : پورت SSH هست که به صورت دیفالت ۲۲ هست که اگر تغییر نداده اید نیازی نیست از فلگ -p استفاده کنید اما اگر پورت SSH رو تغییر داده اید باید از فلگ -P استفاده کنید به صورت یک فاصله و شماره پورت رو جلوش وارد کنید! و اما اگر تغییر نداده اید در ادامه بهتون میگم چطوری پورت SSH رو تغییر بدید!
اما ابزاری هم در لینوکس هست که با استفاده از اون میتونید از طریق SSH به سرورتون متصل بشید مثل ابزار remmina یا putty
و در اخر در ویندوز کافی هست که نرم افزار پوتی (putty) رو از آدرس زیر دانلود و نصب کنید.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
ظاهر برنامه به شکل زیر میباشد
که در قسمت hostname (or ip) باید هاست نیم (Hostname) یا آیپی (ip) سرور خود را وارد کنید.
نکته: میتوانید به صورت user@ip هم در این قسمت وارد کنید یعنی یوزر شما @ ای پی سرور
در قسمت port هم پورت SSH خود را وارد کنید. و سپس روی open کلیک کنید تا فرایند اتصال انجام گیرد.
برای تغییر پورت SSH ابتدا به مسیر زیر مراجعه کنید با استفاده از دستور cd :
نکته : با استفاده از دستور cd میتوانید بین دایرکتوری ها حرکت کنید.
cd /etc/ssh
سپس فایل کانفیگ SSH را با نام sshd_config ویرایش کنید با استفاده از ویرایشگر نانو(nano):
نکته : نانو(nano) یکی از معروف ترین ویرایشگر های خط فرمان لینوکس میباشد.
sudo nano sshd_config
و سه پس به دنبال عبارت زیر بگردید.
#Port 22
اگر نتوانستید پیدا کنید ctrl+w را بفشارید و Port را سرچ کنید توجه کنید با P بزرگ.
و این خط را از حالت کامنت خارج کنید برای خارج کردن کامنت # را حذف کرده و به جای ۲۲ پورت مورد نظر خود را بنویسید.
نکته: کامنت به زبان ساده توضیحات هستند و هیچ تاثییری در برنامه یا فایل کانفیگ سرویس ما ندارند تا زمانی کامنت شده باشند.
پس از این کار با Ctrl+x را بفشارید از شما سوال میکند که تغییرات رو سیو کند یا خیر ؟ y به معنای تایید و بله هست و n به معنای خیر.y را تایپ کرده و اینتر را بفشارید.
تبریک میگم پورت اس اس اچ رو با موفقیت تغییر دادید حالا سرویس SSH را با دستور ریستارت کنید و با پورت جدید متصل بشید و لذت ببرید.(برای توزیع های مختلف دستور مشخص شده.)
Centos, Fedora sudo service sshd restart ArchLinux, Ubuntu, Debian sudo systemctl restart sshd.service
بد نیست به یک نکته اشاره بکنیم ! چطوری از ورود یوزر root به سرور از طریق SSH جلوگیری کنیم ؟
برای این کار فایل کانفیگ SSH را دوباره ادیت میکنیم
sudo nano /etc/ssh/sshd_config
و به به دنبال
#PermitRootLogin yes
به گردید و از حالت کامنت آن را خارج کرده و yes را به no تغییر دهید.
سپس سرویس SSH را ریستارت کنید.(در دستورات بالا گفتیم چگونه ssh را ریستارت کنید.)
اکنون دیگر یوزر root توانایی اتصال به سرور از طریق SSH را ندارد.
با استفاده از دستور useradd یک یوزر جدید بسازید به طور مثال hosthey
sudo useradd hosthey
سپس آن را به گروه sudoer ها اضافه نمایید
sudo visudo
و خط زیر را اضافه و سیو کنید.
hosthey ALL=(ALL) ALL
زین پس با یوزر hosthey اول هر دستوری که sudo بذارید از شما درخواست پسورد کرده که با زدن پسورد دسترسی های لازم را گرفته و اجرا میگردد.
مورد آخر هم میخواییم در مورد اینکه چطوری دسترسی به ssh رو کلا ببندیم و فقط به یک یا یکسری آی پی خاص دسترسی بدیم که بتونن از طریق ssh متصل بشن به سرور!خب بیایید شروع کنیم ابتدا فایل hosts.allow را در مسیر /et ویرایش کنید.
sudo nano /etc/hosts.allow
سپس عبارت زیر را به آن بیفزایید
به جای ipaddress آی پی مورد نظر خود را وارد کنید.
SSHD : ipaddress : ALLOW
خب ما با این کار فقط به یک آی پی اجازه دادیم به سرویس ssh بتونه متصل بشه اما ! تعریف نکردیم که تکلیف مابقی ای پی ها چیه! باید دسترسی مابقی ای پی ها رو ببندیم ! پس میایم فایل hosts.deny در مسیر /etc ویرایش میکنیم
sudo nano /etc/hosts.deny
و خطر زیر رو بهش اضافه میکنیم
SSHD : ALL : DENY
این یعنی دسترسی همه ای پی ها بهش بسته باشه به جز ای پی هایی که داخل فایل hosts.allow مشخص کردیم.
و در نهایت سرویس ssh رو ریستارت کنید و از تنظیماتی که انجام دادید لذت ببرید.
امیدواریم از این آموزش لذت برده باشید.
بهار
خیلی کامل و خوب بود. ممنون.