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 یه از پایهایترین شیوههای امنیت سرور هست. با راهاندازی و مدیریت درست، امن و راحت به سرور دسترسی داشته باشید.