SSH در Parrot OS
پیکربندی امن سرور و کلاینت SSH در Parrot OS: کلیدهای عمومی، hardening و SSH tunneling.
SSH (Secure Shell) پروتکل استاندارد برای دسترسی امن از راه دور به سرورهای لینوکسی است. در این آموزش، با پیکربندی امن کلاینت و سرور SSH در Parrot OS آشنا میشویم.
SSH چیست؟
SSH پروتکلی رمزنگاریشده برای دسترسی امن به شل راه دور، انتقال فایل و تونلسازی است. نسخهٔ استاندارد آن OpenSSH نام دارد و بهصورت پیشفرض روی Parrot نصب است.
پورتها و سرویسها
| پورت | سرویس | توضیح |
|---|---|---|
| 22 | sshd | سرور SSH |
| 22 | ssh | کلاینت SSH |
| 22 | scp/sftp | انتقال فایل |
نصب سرور SSH
برای تبدیل Parrot به سرور SSH (پذیرش اتصال ورودی):
# نصب OpenSSH Server
sudo apt install openssh-server
# بررسی وضعیت سرویس
sudo systemctl status ssh
# فعالسازی در بوت
sudo systemctl enable ssh
# راهاندازی
sudo systemctl start ssh
# خروجی:
# ● ssh.service - OpenBSD Secure Shell server
# Loaded: loaded
# Active: active (running)اتصال به سرور
# اتصال با رمز عبور
ssh username@server-ip
# مثال
ssh maryam@192.168.1.50
# خروجی:
# The authenticity of host '192.168.1.50' can't be established.
# ED25519 key fingerprint is SHA256:abc123...
# Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
# Warning: Permanently added '192.168.1.50' (ED25519) to the list of known hosts.
# maryam@192.168.1.50's password: ********
# Linux parrot-server 6.1.0-parrot1-amd64 #1 SMP Debian ... x86_64 GNU/Linux
# Last login: Mon Apr 1 10:00:00 2026 from 192.168.1.10اتصال با پورت غیر پیشفرض
# اتصال با پورت 2222
ssh -p 2222 username@server-ipاحراز هویت با کلید عمومی
استفاده از کلید SSH بهجای رمز عبور، امنیت بسیار بالاتری فراهم میکند.
تولید کلید
# تولید کلید ED25519 (توصیهشده)
ssh-keygen -t ed25519 -C "maryam@parrot"
# خروجی:
# Generating public/private ed25519 key pair.
# Enter file in which to save the key (/home/maryam/.ssh/id_ed25519):
# Enter passphrase (empty for no passphrase): ********
# Enter same passphrase again: ********
# Your identification has been saved in /home/maryam/.ssh/id_ed25519
# Your public key has been saved in /home/maryam/.ssh/id_ed25519.pub
# The key fingerprint is: SHA256:abc123...passphrase قوی
هنگام تولید کلید، یک passphrase قوی تعیین کنید. این کار در صورت سرقت کلید خصوصی، از دسترسی غیرمجاز جلوگیری میکند.
کپی کلید عمومی به سرور
# کپی خودکار با ssh-copy-id
ssh-copy-id maryam@192.168.1.50
# خروجی:
# /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s)
# /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
# maryam@192.168.1.50's password: ********
# Number of key(s) added: 1
# Now try logging into the machine, with: "ssh 'maryam@192.168.1.50'"
# and check to make sure that only the key(s) you wanted were added.کپی دستی
# نمایش کلید عمومی
cat ~/.ssh/id_ed25519.pub
# کپی دستی به سرور
ssh maryam@192.168.1.50 "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
ssh maryam@192.168.1.50 "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_ed25519.pub
ssh maryam@192.168.1.50 "chmod 600 ~/.ssh/authorized_keys"غیرفعالسازی ورود با رمز عبور
پس از اطمینان از کارکرد کلید SSH، ورود با رمز را غیرفعال کنید:
# روی سرور
sudo nano /etc/ssh/sshd_config
# تنظیمات:
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin no
# اعمال تغییرات
sudo systemctl restart sshپیکربندی کلاینت SSH
فایل پیکربندی کلاینت در ~/.ssh/config:
nano ~/.ssh/config# ~/.ssh/config
Host parrot-server
HostName 192.168.1.50
User maryam
Port 22
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
Host github
HostName github.com
User git
IdentityFile ~/.ssh/github_keyاتصال با alias
# بهجای تایپ آدرس کامل
ssh parrot-serverامنیتسازی SSH (Hardening)
تنظیمات امنیتی در sshd_config
sudo nano /etc/ssh/sshd_config# /etc/ssh/sshd_config
# تنظیمات پایه
Port 22 # یا پورت غیرپیشفرض
Protocol 2
# احراز هویت
PermitRootLogin no # غیرفعالسازی ورود root
PasswordAuthentication no # فقط کلید SSH
PubkeyAuthentication yes
PermitEmptyPasswords no
MaxAuthTries 3 # حداکثر تلاش
# محدودیت کاربران
AllowUsers maryam ali # فقط این کاربران
# AllowGroups ssh-users # یا فقط گروه خاص
# تنظیمات زمان
LoginGraceTime 30 # ۳۰ ثانیه برای ورود
ClientAliveInterval 300 # چک اتصال هر ۵ دقیقه
ClientAliveCountMax 2 # حداکثر ۲ بار
# لاگگیری
LogLevel VERBOSE
# بانر
Banner /etc/issue.netنصب و پیکربندی Fail2ban
برای جلوگیری از حملات brute-force:
# نصب
sudo apt install fail2ban
# فعالسازی
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# بررسی
sudo fail2ban-client status sshd
# خروجی:
# Status for the jail: sshd
# |- Filter
# | |- Currently failed: 0
# | |- Total failed: 0
# |- Actions
# |- Currently banned: 0
# |- Total banned: 0ترکیب با UFW
ترکیب فایروال UFW، احراز هویت کلید عمومی و Fail2ban، یک پیکربندی امن برای SSH فراهم میکند. این ترکیب اکثر حملات را مسدود میکند.
SSH Tunneling
Local Port Forwarding
دسترسی به سرویس داخلی سرور از طریق SSH:
# forwarding پورت محلی 8080 به پورت 80 سرور
ssh -L 8080:localhost:80 maryam@192.168.1.50
# سپس در مرورگر: http://localhost:8080Remote Port Forwarding
دسترسی از سرور به یک سرویس محلی شما:
# forwarding پورت 9090 سرور به پورت 8080 محلی شما
ssh -R 9090:localhost:8080 maryam@192.168.1.50Dynamic Port Forwarding (SOCKS proxy)
# ایجاد SOCKS proxy روی پورت 1080
ssh -D 1080 maryam@192.168.1.50
# تنظیم مرورگر برای استفاده از SOCKS5 روی localhost:1080انتقال فایل با SCP
# کپی فایل به سرور
scp file.txt maryam@192.168.1.50:/home/maryam/
# کپی فایل از سرور
scp maryam@192.168.1.50:/home/maryam/file.txt ./
# کپی پوشه با -r
scp -r folder/ maryam@192.168.1.50:/home/maryam/
# با پورت غیرپیشفرض
scp -P 2222 file.txt maryam@192.168.1.50:~/SFTP — انتقال تعاملی
# اتصال SFTP
sftp maryam@192.168.1.50
# در محیط SFTP:
sftp> ls
sftp> cd Documents
sftp> get remote_file.txt local_file.txt
sftp> put local_file.txt remote_file.txt
sftp> exitخطاهای رایج
"Permission denied (publickey)"
maryam@192.168.1.50: Permission denied (publickey).دلایل:
- کلید عمومی روی سرور در
~/.ssh/authorized_keysنیست - مجوز فایلها نادرست است
- ورود با رمز غیرفعال است و کلید هم کار نمیکند
راهحل:
# روی سرور (با ورود فیزیکی یا کنسول):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh"Connection refused"
ssh: connect to host 192.168.1.50 port 22: Connection refusedدلایل:
- سرویس SSH روی سرور اجرا نیست
- فایروال پورت 22 را بلاک کرده
راهحل:
# روی سرور:
sudo systemctl start ssh
sudo ufw allow ssh"Host key verification failed"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@دلیل: کلید هاست سرور تغییر کرده (مثلاً سرور بازنصب شده). راهحل:
# حذف کلید قدیمی
ssh-keygen -R 192.168.1.50
# اتصال مجدد
ssh maryam@192.168.1.50اتصال کند
# غیرفعالسازی DNS lookup معکوس روی سرور
sudo nano /etc/ssh/sshd_config
# UseDNS no
# راهاندازی مجدد
sudo systemctl restart sshخلاصه و مرحلهٔ بعد
SSH ابزار ضروری برای مدیریت از راه دور Parrot OS است. با پیکربندی صحیح شامل کلید عمومی، غیرفعالسازی رمز عبور، Fail2ban و فایروال، میتوانید دسترسی امن و مطمئن به سرور داشته باشید.
بهعنوان گام بعدی:
- آموزش تنظیمات شبکه را برای پیکربندی پایهٔ شبکه ببینید
- آموزش مدیریت کاربران را برای ایجاد حساب کاربری بخوانید
- آموزش عیبیابی را برای حل مشکلات دنبال کنید
این صفحه در تاریخ ۵ تیر ۱۴۰۵ بهروزرسانی شده است.