جدول محتوایی
SSH چیست؟
دستور ssh – پروتکل SSH یکی از خدمات main key (کلید اصلی) در سیستم های مبتنی بر لینوکس است. SSH مخفف Secure Socket Shell است. پروتکل SSH برای دسترسی به سرور از راه دور با روش رمزگذاری شده، یعنی با استفاده از درگاه پیشفرض TCP/IP 22 یا شماره پورت استفاده میشود. این سرویس معمولا توسط مدیران سیستم و شبکه برای مدیریت سرورها و اجرای دستورات استفاده می شود. همچنین میتوان گفت SSH جایگزینی برای پروتکل های نا امن Telnet، rlogin و rsh برای اتصال سیستم در سراسر شبکه است.
در این مقاله، ابتدا به شما نحوه ورود به سرور راه دور با پروتکل ssh را آموزش می دهیم. سپس به بررسی 9 دستور مهم و پایه ای ssh در لینوکس میپردازیم.
تمام دستور های ssh که در ادامه بررسی میکنیم، در CentOS 7 تست شده اند. این نکته را در نظر بگیرید که ممکن است برخی از آنها در توزیع های دیگر لینوکس متفاوت باشند.
اتصال به سرور با دستور ssh
فرض را بر این میگیریم که شما یک سرور مجازی راه دور که CentOS 7 روی آن نصب است دارید. ابتدا هدف ما دسترسی به سرور با استفاده از دستور ssh است.
ذستور عمومی ssh برای اتصال به سرور:
ssh [OPTIONS] [USER @]: HOST
مشخصات فرضی Webserver و Localhost:
Webserver
- سیستم عامل: CentOS Linux 7
- نام کاربری یا هاست نِیم: example.com
- آدرس آی پی: 192.168.1.100
Localhost
- سیستم عامل: CentOS Linux 7
- نام کاربری یا هاست نِیم: r001.example.com
- آدرس آی پی: 192.168.1.200
- ssh کلاینت: بعنوان مثال نرم افزار PuTTY
[highlight color=”yellow”]توجه: کامپیوتر کلاینت شما به پکیج openssh-client برای دسترسی به سرور با SSH نیاز دارد.[/highlight]
1. چگونه نسخه کلاینت ssh خود را ببینیم؟
برای مشاهده نسخه کلاینت ssh، دستور زیر را در ترمینال وارد کنید:
# ssh -V
نمونه خروجی:
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
2. دسترسی به سرور با دستور پیشفرض ssh
با استفاده از آدرس IP می توان به سرور راه دور دسترسی داشت یا می توانید از نام میزبان نیز استفاده کنید. برای تایید اتصال “yes” را وارد کنید. سپس از شما می خواهد که رمز عبور را وارد کنید. پس از پذیرش رمز عبور، شما از را دور به سرور دسترسی خواهید داشت.
برای ورود هم میتوانید از IP استفاده کنید هم Hostname:
# ssh 192.168.1.100 یا # ssh example.com
نکته: استفاده از دستور پیشفرض ssh در centos 7 به حساب root اجازه میدهد مستقیماً از راه دور دسترسی کامل داشته باشد، که بسیار خطرناک است. به این معنی است که این آن حساب کاربری می تواند هر کاری را در سیستم راه دور انجام دهد. از این رو، به شدت توصیه می شود که ورود root را غیرفعال کنید و امتیازات sudo را اعطا کنید.
3. تایید اثر انگشت در ترمینال با استفاده از دستور ssh
با استفاده از این دستور می توانید اثر انگشت سرور SSH خود را تأیید کنید:
# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
خروجی:
256 SHA256:4YNXabAuI4gYnC7ZIcTRbPlCMapOvrMwW4E/kKACb4s no comment (ECDSA)
دستور زیر کلید اثر انگشت MD5 را نیز تأیید می کند:
# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub -E md5
خروجی:
256 MD5: 5f: 39: 21: 43: 92: 6e: 7e: f3: 17: 35: 6b: 30: 85: 44: ee: 38 no comment (ECDSA)
4. چگونه یک کاربر خاص را برای دسترسی به سرور راه دور مشخص کنیم؟
می توانید از یکی از دستورات زیر برای ورود به سرور راه دور بعنوان یک کاربر خاص استفاده کنید. هر دوی این دستورات یک خروجی را ارائه می دهند.
# ssh -l username 192.168.1.100 یا # ssh [email protected]
خروجی:
[email protected]'s password: (Enter password) Last login: Mon Apr 6 02:44:44 2020 from 192.168.1.100
5. دسترسی به سرور با استفاده از شماره پورت سفارشی
با اضافه کردن گزینه p- بعد از دستور عادی ورود ssh، میتوانیم با یک پورت به سرور دسترسی داشته باشم. شماره پورت 22 بطور پیشفرض برای ssh تنظیم شده است که توصیه میکنیم به دلایل امنیتی آن را تغییر دهید. پیشنهاد میکنیم مقاله “نحوه تغییر پورت SSH در سرور مجازی لینوکس برای بالا بردن امنیت” را مطالعه کنید.
# ssh [email protected] -p 16658
6. اجرای یک دستور بدون ورود به سرور
مزیت استفاده از این دستور این است که خروجی دستورات را بدون ورود به سرور برایتان نمایش میدهد. بعنوان مثال میخواهید نسخه لینوکس خود را بدانید:
# ssh [email protected] uname -r
خروجی:
[email protected]'s password: 3.10.0-862.14.4.el7.x86_64
7. اجرای چند دستور بدون ورود به سرور
تنها تفاوت بین استفاده از این دستور و دستور قبلی، استفاده از نقطه ویرگول (;) بین دستورات است. همین!!!
مثلا اینجا میخواهیم ورژن لینوکس و Hostname را بدانیم:
# ssh [email protected] "uname -r; hostname"
خروجی:
[email protected]'s password: 3.10.0-862.14.4.el7.x86_64 example.com
8. انتقال فایل از لوکال هاست به سرور
با استفاده از دستور SCP، می توانیم یک فایل را از یک سیستم محلی به یک سرور راه دور انتقال دهیم.
# scp file.zip [email protected]: / home / apps / production / sql / dump
خروجی:
[email protected]'s password: file.zip 100% 70KB 3.3MB/s 00:00
9. دسترسی به سرور با دستور sftp
# sftp [email protected]
با استفاده از دستور ‘sftp’ فوق، می توانیم با یک اتصال ایمن به سرور راه دور دسترسی پیدا کنیم. ابزار sftp از دستورات FTP های معمولی را پشتیبانی میکند.
[email protected]'s password: Connected to 192.168.1.100. sftp> ls (# ls command is to list the files) php share tandd sftp> pwd (#pwd command is to check the path of the current working directory) Remote working directory: / home / apps sftp>
نتیجه
از وقتی که برای خواندن این پست گذاشتید سپاسگذاریم. در این پست شما را با پایه ای ترین و مهمترین دستور های ssh آشنا کردیم.
برای خرید سرور مجازی لینوکس، پیشنهاد میکنیم از پلن های سرور مجازی ایرانیکا سرور دیدن فرمایید.
ببخشید میشه یکم بیشتر توضیحات بدید در مورد بخش دوم
ممنون جالب بود
چندین سایت گشتم اما هیچکدوم مثل سایت شما مطالبش تکمیل نبود
آفرین ممنون
ممنون بابت مطالب خوبتون
عالی عالی ممنون
با سپاس