در دنیای مدیریت سرورها، امنیت، سرعت و دقت سه ستون اصلی موفقیتاند. و در قلب این سه ستون، ابزاری قرار دارد که شاید ساده به نظر برسد، اما قدرتی بینظیر در اختیار مدیران سرور میگذارد: SSH.
اگر شما هم با سرورهای لینوکسی سر و کار دارید، احتمالاً بارها از SSH برای اتصال از راه دور استفاده کردهاید. اما SSH فقط یک ابزار اتصال نیست؛ مجموعهای از دستورات قدرتمند را در خود جای داده که میتوانند فرآیندهای مدیریتی را سادهتر، امنتر و حرفهایتر کنند.
در این مطلب، قصد داریم ۱۵ دستور ضروری SSH را مرور کنیم که هر مدیر سروری باید آنها را بشناسد و در کار روزمرهاش بهکار گیرد. هر دستور با توضیحی کاربردی، مثالی واقعی و نکتهای حرفهای همراه خواهد بود تا بتوانید بلافاصله آن را در محیط کاری خود پیادهسازی کنید.
پس اگر آمادهاید که مهارتهای SSH خود را یک پله ارتقا دهید، با ما همراه باشید.
پیشنیازها
پیش از آنکه به سراغ دستورات SSH برویم، بهتر است مطمئن شویم که با چند مفهوم پایهای آشنا هستید. این بخش کوتاه، صرفاً برای همسطحسازی است تا مطمئن شویم همه چیز برای یادگیری مؤثر آماده است.
- آشنایی با ترمینال لینوکس: اگر تا به حال با خط فرمان لینوکس کار کردهاید، مسیر برایتان هموارتر خواهد بود. دستورات SSH معمولاً در محیط ترمینال اجرا میشوند.
- دسترسی به یک سرور لینوکسی: برای تمرین عملی، داشتن یک VPS یا سرور مجازی با دسترسی SSH ضروری است. اگر هنوز سروری ندارید، میتوانید از سرویسهای رایگان یا ارزانقیمت برای شروع استفاده کنید.
- شناخت اولیه از SSH: ابزار SSH یا Secure Shell پروتکلی است برای اتصال امن به سرورها از راه دور. اگر مفهوم کلید عمومی و خصوصی، پورت SSH و احراز هویت را شنیدهاید، در مسیر درستی هستید.
- دستگاه کلاینت (کامپیوتر شخصی): برای اجرای دستورات، به یک کامپیوتر با سیستمعامل لینوکس، macOS یا ویندوز (با نصب ابزارهایی مثل PuTTY یا استفاده از WSL) نیاز دارید.
۱۵ دستور مهم SSH
۱. اتصال امن به سرور از راه دور
برای ورود به محیط ترمینال یک سرور لینوکسی از راه دور، از دستور ssh استفاده میشود. این دستور پایهایترین روش برای مدیریت سرور از طریق خط فرمان است.
فرم کلی دستور:
ssh user@server-ip
نمونه کاربردی:
ssh root@192.168.1.100
نکته حرفهای: اگر سرور روی پورتی غیر از ۲۲ تنظیم شده، میتوانید پورت را مشخص کنید:
ssh -p 2222 root@192.168.1.100
۲. فعالسازی ورود بدون رمز عبور
برای ورود سریعتر و امنتر به سرور، میتوان کلید عمومی SSH را به سرور ارسال کرد تا دیگر نیازی به وارد کردن رمز عبور نباشد. این کار با دستور ssh-copy-id انجام میشود.
فرم کلی دستور:
ssh-copy-id user@server-ip
نمونه کاربردی:
ssh-copy-id root@192.168.1.100
نکته حرفهای: پیش از اجرای این دستور، مطمئن شوید که کلید SSH شما با ssh-keygen ایجاد شده باشد:
ssh-keygen -t rsa -b 4096
۳. انتقال فایل از سیستم محلی به سرور
برای ارسال فایلها به سرور از طریق ارتباط امن، دستور scp گزینهای مناسب است. این دستور برای تهیه نسخه پشتیبان، ارسال اسکریپتها یا فایلهای پیکربندی بسیار کاربردی است.
فرم کلی دستور:
scp file user@server-ip:/destination/path
نمونه کاربردی:
scp backup.sql root@192.168.1.100:/var/backups/
نکته حرفهای: برای انتقال پوشهها از گزینه -r استفاده کنید:
scp -r myfolder root@192.168.1.100:/var/www/
۴. ایجاد تونل امن برای دسترسی به سرویسهای داخلی
اگر سرویسی روی سرور فقط از داخل قابل دسترسی است (مثل دیتابیس یا پنل مدیریت)، میتوانید با دستور ssh -L یک تونل امن ایجاد کنید و از سیستم خود به آن سرویس متصل شوید.
فرم کلی دستور:
ssh -L local_port:remote_host:remote_port user@server-ip
نمونه کاربردی:
ssh -L 8080:localhost:80 root@192.168.1.100
نکته حرفهای: پس از اجرای دستور، میتوانید در مرورگر خود آدرس http://localhost:8080 را باز کنید و به سرویس مورد نظر روی سرور دسترسی پیدا کنید.
۵. اجرای دستور از راه دور بدون ورود به محیط ترمینال
اگر بخواهید تنها یک دستور خاص را روی سرور اجرا کنید بدون آنکه وارد محیط تعاملی شوید، میتوانید از قابلیت اجرای مستقیم دستور با SSH استفاده کنید. این روش برای اجرای سریع اسکریپتها یا بررسی وضعیت سرویسها بسیار مفید است.
فرم کلی دستور:
ssh user@server-ip 'command'
نمونه کاربردی:
ssh root@192.168.1.100 'systemctl restart nginx'
نکته حرفهای: برای اجرای چند دستور پشت سر هم، از && یا ; استفاده کنید:
ssh root@192.168.1.100 'apt update && apt upgrade -y'
۶. اتصال با کلید خصوصی مشخص
اگر چند کلید SSH دارید یا کلید پیشفرض شما متفاوت است، میتوانید با استفاده از گزینه -i کلید دلخواه را مشخص کنید. این روش برای مدیریت چند سرور با کلیدهای مختلف بسیار کاربردی است.
فرم کلی دستور:
ssh -i /path/to/private_key user@server-ip
نمونه کاربردی:
ssh -i ~/.ssh/id_rsa_backup root@192.168.1.100
نکته حرفهای: مطمئن شوید که سطح دسترسی فایل کلید خصوصی مناسب باشد:
chmod 600 ~/.ssh/id_rsa_backup
۷. بررسی اتصال SSH با حالت اشکالزدایی
برای بررسی مشکلات اتصال یا تحلیل جزئیات ارتباط SSH، میتوانید از گزینه -v استفاده کنید. این گزینه اطلاعات دقیقی از مراحل اتصال نمایش میدهد.
فرم کلی دستور:
ssh -v user@server-ip
نمونه کاربردی:
ssh -v root@192.168.1.100
نکته حرفهای: برای دریافت اطلاعات بیشتر، میتوانید از -vv یا -vvv استفاده کنید:
ssh -vvv root@192.168.1.100
۸. اجرای دستور با کاربر دیگر از طریق SSH
اگر نیاز دارید دستوری را با دسترسی کاربر دیگری اجرا کنید (مثلاً root)، میتوانید از sudo یا su در ترکیب با SSH استفاده کنید. این روش برای اجرای دستورات مدیریتی بدون ورود مستقیم به حساب کاربری دیگر مفید است.
فرم کلی دستور:
ssh user@server-ip 'sudo command'
نمونه کاربردی:
ssh deploy@192.168.1.100 'sudo systemctl restart apache2'
نکته حرفهای: مطمئن شوید که کاربر مورد نظر در گروه sudo قرار دارد و اجازه اجرای دستور را دارد.
۹. اتصال به سرور از طریق پورت خاص
اگر سرور شما به دلایل امنیتی یا ساختاری از پورتی غیر از ۲۲ برای SSH استفاده میکند، میتوانید با گزینه -p پورت دلخواه را مشخص کنید. این دستور برای سرورهایی با تنظیمات سفارشی بسیار ضروری است.
فرم کلی دستور:
ssh -p port_number user@server-ip
نمونه کاربردی:
ssh -p 2222 root@192.168.1.100
نکته حرفهای: اگر از فایروال استفاده میکنید، مطمئن شوید که پورت مورد نظر باز باشد و در لیست مجاز قرار گرفته باشد.
۱۰. اتصال به سرور با استفاده از فایل تنظیمات
برای سادهسازی اتصالهای مکرر، میتوانید تنظیمات مربوط به هر سرور را در فایل ~/.ssh/config ذخیره کنید. این روش باعث میشود تنها با یک نام مستعار به سرور متصل شوید.
نمونه تنظیمات فایل:
Host myserver
HostName 192.168.1.100
User root
Port 2222
IdentityFile ~/.ssh/id_rsa
فرم اتصال:
ssh myserver
نکته حرفهای: میتوانید چندین سرور را با نامهای مختلف در همین فایل تعریف کنید و اتصالها را بسیار سریعتر و خواناتر انجام دهید.
۱۱. انتقال فایل از سرور به سیستم محلی
همانطور که میتوان فایلها را به سرور ارسال کرد، با دستور scp میتوان فایلها را از سرور نیز دریافت کرد. این روش برای دریافت گزارشها، لاگها یا فایلهای پشتیبان بسیار کاربردی است.
فرم کلی دستور:
scp user@server-ip:/path/to/file /local/destination
نمونه کاربردی:
scp root@192.168.1.100:/var/log/syslog ./syslog_backup.log
نکته حرفهای: برای دریافت پوشهها از گزینه -r استفاده کنید:
scp -r root@192.168.1.100:/etc/nginx ./nginx_config/
۱۲. اجرای دستور با محیط تعاملی از راه دور
اگر بخواهید وارد محیط تعاملی یک برنامه خاص روی سرور شوید (مثل top یا htop) و خروجی آن را بهصورت زنده مشاهده کنید، میتوانید دستور را از طریق SSH اجرا کنید.
فرم کلی دستور:
ssh user@server-ip 'interactive_command'
نمونه کاربردی:
ssh root@192.168.1.100 'htop'
نکته حرفهای: برای خروج از محیط تعاملی، معمولاً کافیست کلید q را فشار دهید یا از دستور exit استفاده کنید.
۱۳. بررسی وضعیت اتصال و زمان پاسخ سرور
برای بررسی اینکه آیا سرور در دسترس است و با چه سرعتی پاسخ میدهد، میتوانید از دستور ping استفاده کنید. این دستور از طریق پروتکل ICMP عمل میکند و برای بررسی اولیه اتصال بسیار مفید است.
فرم کلی دستور:
ping server-ip
نمونه کاربردی:
ping 192.168.1.100
نکته حرفهای: برای محدود کردن تعداد بستههای ارسالی، از گزینه -c استفاده کنید:
ping -c 4 192.168.1.100
۱۴. اتصال به سرور و اجرای دستور با خروجی ذخیرهشده
اگر بخواهید خروجی یک دستور را از راه دور دریافت کرده و در فایل محلی ذخیره کنید، میتوانید از ترکیب SSH با > یا tee استفاده کنید. این روش برای تهیه گزارشهای سیستمی یا لاگها بسیار کاربردی است.
فرم کلی دستور:
ssh user@server-ip 'command' > output.txt
نمونه کاربردی:
ssh root@192.168.1.100 'df -h' > disk_report.txt
نکته حرفهای: برای ذخیره همزمان در فایل و نمایش در ترمینال، از tee استفاده کنید:
ssh root@192.168.1.100 'df -h' | tee disk_report.txt
۱۵. قطع اتصال SSH بهصورت ایمن
پس از پایان کار با سرور، خروج ایمن از جلسه SSH اهمیت زیادی دارد. این کار با دستور exit انجام میشود و باعث میشود اتصال بهدرستی بسته شود و منابع آزاد شوند.
فرم کلی دستور:
exit
نکته حرفهای: اگر در محیط تعاملی یا برنامهای مثل top یا vim هستید، ابتدا از آن خارج شوید و سپس دستور exit را وارد کنید.
جمعبندی
با یادگیری و تسلط بر این ۱۵ دستور، میتوانید مدیریت سرور های لینوکسی را با امنیت، سرعت و دقت بیشتری انجام دهید. این دستورات نهتنها پایهای هستند، بلکه در موقعیتهای واقعی روزمره نیز کاربرد مستقیم دارند.
اگر این مطلب برایتان مفید بود، آن را با همکاران یا دوستان علاقهمند به مدیریت سرور به اشتراک بگذارید.