## آموزش اتصال به سرور با SSH
\**توضیح کوتاه:** در این راهنما روش اتصال از ترمینال با `ssh` با نام کاربری/پسورد، روش امنتر با کلید (SSH key) برای ورود بدون پسورد، و روش اتصال از داخل Visual Studio Code با افزونه *Remote - SSH* را بهصورت مرحلهبهمرحله آموزش دادهام. همهچیز را با مثال و فرمانها آوردهام؛ مقادیر `<USERNAME>`, `<IP_ADDRESS>`, `<PORT>` را با مقادیر واقعی جایگزین کنید.
---
## ۱) پیشنیازها
- دسترسی به یک دستگاه (Windows / macOS / Linux) با ترمینال (Windows: PowerShell یا Windows Terminal؛ یا Git Bash؛ یا WSL).
- یوزرنیم (`<USERNAME>`) و آدرس آیپی سرور (`<IP_ADDRESS>`) و در صورت غیرپیشفرض، پورت SSH (`<PORT>`؛ پیشفرض 22).
- (اختیاری اما پیشنهاد شده) نصب VS Code.
---
## ۲) اتصال از ترمینال با یوزرنیم و پسورد (روش ساده)
1. ترمینال را باز کنید.
2. فرمان زیر را اجرا کنید (پورت اگر 22 است نیاز به `-p` نیست):
3.
ssh <USERNAME>@<IP_ADDRESS>
# یا اگر پورت متفاوت است:
ssh -p <PORT> <USERNAME>@<IP_ADDRESS>
3. اولین بار ممکن است پیام «The authenticity of host ...» بیاید — `yes` تایپ کنید و Enter بزنید.
4. وقتی از شما **Password:** پرسیده شد، پسورد را وارد کنید (هنگام تایپ چیزی نمایش داده نمیشود؛ طبیعی است) و Enter بزنید.
5. اگر اطلاعات درست باشد، به shell سرور متصل میشوید.
\**نکته امنیتی:** هرگز پسورد را در فایلهای متنی یا پیست عمومی قرار ندهید.
---
## ۳) اگر خطا دریافت کردید — چکهای سریع
- خطا: `Permission denied` → نامکاربری یا رمز اشتباه است.
- خطا: `Connection timed out` → آیپی یا پورت اشتباه است یا دیوارآتش سرور (firewall) یا شبکهتان دسترسی را بلاک کرده.
- خطا: `No route to host` → بررسی کنید آیپی و اتصال اینترنت.
- برای دیباگ بیشتر، از `ssh -v <USERNAME>@<IP_ADDRESS>` استفاده کنید تا لاگ جزئیات را ببینید.
---
---
## ۴) اتصال از VS Code با افزونه Remote - SSH
(روش پیشنهادی: با استفاده از SSH key وارد شوید؛ اما VS Code از وارد کردن پسورد هم پشتیبانی میکند و موقع اتصال از شما میپرسد)
### ۴.۱ نصب افزونه
1. VS Code را باز کنید.
2. به بخش Extensions (یا `Ctrl+Shift+X`) بروید.
3. جستجو کنید: `Remote - SSH` (توسعهدهنده: Microsoft) و نصب کنید.
### ۵.۲ افزودن یک Host (روش ساده — ویرایش فایل config)
1. از منوی Command Palette (`Ctrl+Shift+P` یا `F1`) دستور زیر را اجرا کنید:
Remote-SSH: Open SSH Configuration File...
2. اگر چند فایل نشان داده شد، معمولاً `~/.ssh/config` را انتخاب کنید.
3. یک ورودی جدید بهصورت زیر اضافه کنید (مثال):
Host my-server
HostName <IP_ADDRESS>
User <USERNAME>
Port 22 # اگر پورت فرق میکند مقدارش را تغییر دهید
4. فایل را ذخیره کنید.
### ۴.۳ اتصال
1. دوباره Command Palette را باز کنید و:
Remote-SSH: Connect to Host...
2. از لیست `my-server` (یا همان اسمی که گذاشتهاید) را انتخاب کنید.
3. اگر از کلید استفاده میکنید و passphrase گذاشتهاید، VS Code از شما passphrase را خواهد خواست. اگر از پسورد استفاده میکنید، پنجرهای باز میشود و از شما پسورد را میپرسد؛ وارد کنید.
4. پس از اتصال، پنجره جدیدی از VS Code باز میشود که در نوار پایین نوشته `SSH: my-server` — حالا شما روی سرور کار میکنید (میتوانید فایلها را باز، ویرایش و ترمینال را اجرا کنید).
### ۴.۴ باز کردن ترمینال داخل VS Code
- از منوی بالا: `Terminal` → `New Terminal` یا `Ctrl+``
- این ترمینال روی سرور باز میشود و میتوانید دستوراتی مثل `ls`, `htop`, `systemctl` و غیره اجرا کنید.
### ۴.۵ اگر اتصال ناموفق بود (تست و رفع مشکل)
- در VS Code: View → Output → انتخاب `Remote - SSH` از لیست کشویی برای دیدن لاگهای اتصال و خطاها.
- معمولترین مشکلات: نامکاربری/پسورد اشتباه، پورت بسته، فایل `~/.ssh/authorized_keys` مجوزهای ناصحیح، یا آدرس آیپی نادرست.
---
## 6) خلاصهٔ سریع — فقط کپی و جایگزین کن
# اتصال ساده با پسورد
ssh <USERNAME>@<IP_ADDRESS>
# یا با پورت غیرپیشفرض
ssh -p <PORT> <USERNAME>@<IP_ADDRESS>
# ایجاد SSH key (کلاینت)
ssh-keygen -t ed25519 -C "<USERNAME>@<HOST>"
# کپی کلید (اگر ssh-copy-id هست)
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p <PORT> <USERNAME>@<IP_ADDRESS>
# یا دستی: در کلاینت
cat ~/.ssh/id_ed25519.pub
# خروجی را کپی کن و در سرور اضافه کن:
# در سرور:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "PASTE_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# نمونه entry برای ~/.ssh/config برای استفاده با VS Code
Host my-server
HostName <IP_ADDRESS>
User <USERNAME>
Port 22
آموزش اتصال به سرور با SSH