وزن: 4
توضیحات: داوطلبان باید بتوانند SSH client و SSH server را پیکربندی و استفاده کنند. این هدف شامل پیکربندی گزینههای کلیدی SSH، استفاده از key-based authentication، انتقال فایل امن و tunneling/port forwarding است.
نواحی کلیدی دانش:
- فایلهای پیکربندی و گزینههای مهم ssh و sshd
- استفاده از key pair (public/private) و مدیریت known_hosts
- روشهای انتقال فایل امن: scp و sftp
- agent forwarding و ssh-agent
- Local/Remote/Dynamic port forwarding
اصطلاحات و ابزارها:
- ssh
- sshd
- ssh-keygen
- ssh-agent
- ssh-add
- scp
- sftp
- ~/.ssh/ (authorized_keys, known_hosts, config)
- /etc/ssh/sshd_config
SSH (Secure Shell) یک پروتکل برای دسترسی remote امن به سیستمها است که ارتباط را رمزگذاری میکند و جایگزین telnet و rsh شده است.
- تنظیمات سرور:
/etc/ssh/sshd_config - کلیدهای کاربر:
~/.ssh/id_rsaو~/.ssh/id_rsa.pub(یا ed25519) - کلیدهای مجاز سرور برای کاربر:
~/.ssh/authorized_keys - کلیدهای شناختهشده:
~/.ssh/known_hosts
ساخت key pair:
ssh-keygen -t ed25519
# یا
ssh-keygen -t rsa -b 4096کپی کردن public key روی سرور (روش ساده):
ssh-copy-id user@serverیا دستی:
cat ~/.ssh/id_ed25519.pub | ssh user@server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'چند گزینه کلیدی:
# غیرفعال کردن login مستقیم root (پیشنهادی)
PermitRootLogin no
# فقط اجازه به کلیدها (در صورت نیاز)
PasswordAuthentication no
# محدود کردن کاربران مجاز
AllowUsers user1 user2
# کنترل Port
Port 22
# فعال/غیرفعال کردن X11 forwarding
X11Forwarding noبعد از تغییر تنظیمات:
sshd -t
systemctl restart sshdکپی فایل با scp:
scp file.txt user@server:/tmp/
scp -r dir/ user@server:/tmp/انتقال تعاملی با sftp:
sftp user@serverssh-agent برای نگهداری کلیدها در حافظه استفاده میشود تا مجبور نباشید هر بار passphrase را وارد کنید:
eval "$(ssh-agent)"
ssh-add ~/.ssh/id_ed25519وقتی میخواهیم یک سرویس روی شبکه داخلی را به لوکال خودمان بیاوریم:
ssh -L 8080:127.0.0.1:80 user@serverوقتی میخواهیم یک پورت روی سرور remote به سمت لوکال ما تونل شود:
ssh -R 2222:127.0.0.1:22 user@serverssh -D 1080 user@server- استفاده از key-based authentication به جای password (در صورت امکان)
- محدود کردن کاربران مجاز و غیرفعال کردن root login
- تغییر Port به تنهایی امنیت نیست، اما noise حملات را کم میکند
- بررسی logها (مثلاً
/var/log/auth.logیا journal)