SSH با پسورد یعنی هکرها میتونن هزاران پسورد رو تست کنن. SSH Key امن و راحت‌تره. تو این مقاله راه‌اندازی کامل و بهترین شیوه‌ها رو یاد میگیرید.

SSH Key چیه؟

یه جفت کلید رمزنگاری: Private Key که خصوصیه و روی کامپیوتر شماست، Public Key که روی سرور. با اینها بدون پسورد وارد میشید.

مزایا

امنیت: عملاً غیرقابل هک
راحتی: پسورد لازم نیست
Automation: اسکریپت‌ها بدون تعامل کار میکنن
Auditing: هر کلید یه نفر

ساخت SSH Key

ED25519 (جدید، توصیه میشه)

ssh-keygen -t ed25519 -C "your@email.com"

RSA (سازگارتر)

ssh-keygen -t rsa -b 4096 -C "your@email.com"

Passphrase

حتماً Passphrase بذارید. اگه Private Key دزدیده بشه، بدون Passphrase قابل استفاده نیست.

مکان کلید

Linux/macOS: ~/.ssh/id_ed25519
Windows: C:\\Users\\User\\.ssh\\id_ed25519

Copy Public Key به سرور

ssh-copy-id user@server
یا دستی:
cat ~/.ssh/id_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Login بدون پسورد

ssh user@server

اگه Passphrase گذاشتید، ازتون میپرسه.

SSH Agent

Passphrase رو یه بار وارد میکنید، Agent نگه میداره:
eval $(ssh-agent)
ssh-add ~/.ssh/id_ed25519

ssh_config

~/.ssh/config برای shortcut:
Host myserver
  HostName 1.2.3.4
  User admin
  Port 2222
  IdentityFile ~/.ssh/id_ed25519

حالا: ssh myserver

Disable Password Auth روی سرور

/etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

systemctl restart sshd

Disable Root Login

PermitRootLogin no

Multiple Keys

برای هر پروژه یه Key جدا:
ssh-keygen -t ed25519 -f ~/.ssh/id_github
ssh-keygen -t ed25519 -f ~/.ssh/id_saba

Restrict Key

در ~/.ssh/authorized_keys:
command="ls",no-port-forwarding ssh-ed25519 AAAA...

این Key فقط ls اجرا میکنه.

SSH از Windows

Windows 10+ OpenSSH داخلی داره. PuTTY هم گزینه‌ست.

SSH Key Rotation

هر ۶ ماه Key جدید بسازید. Key قدیمی رو از authorized_keys حذف کنید.

Yubikey و Hardware Key

برای امنیت بالاتر، Key رو در Yubikey ذخیره کنید. عملاً غیرقابل سرقت.

Certificate-based SSH

در سازمان‌های بزرگ، به جای Key های فردی از Certificate استفاده میشه. مدیریت راحت‌تر.

Best Practices

Passphrase قوی: حتماً
Private Key امن: هرگز share نکنید
Backup: از Private Key بک‌آپ داشته باشید
Different keys: برای هر سرور یا سرویس
Rotate: مدام Key رو عوض کنید

مشکلات رایج

Permission denied

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 600 ~/.ssh/authorized_keys

Agent forgot

ssh-add ~/.ssh/id_ed25519

Wrong port

ssh -p 2222 user@server

سباهاست

در پنل مشتریان سباهاست، SSH Key رو راحت اضافه کنید. تیم فنی در راه‌اندازی کمک میکنه.

جمع‌بندی

SSH Key یه از پایه‌ای‌ترین شیوه‌های امنیت سرور هست. با راه‌اندازی و مدیریت درست، امن و راحت به سرور دسترسی داشته باشید.