</>

لینوکس‌پارسی

مرجع فارسی آموزش لینوکس

Gentoo • Arch • Debian • Ubuntu • Kali • Parrot
پرش به محتوای اصلی

Command Palette

Search for a command to run...

SSH در Parrot OS

پیکربندی امن سرور و کلاینت SSH در Parrot OS: کلیدهای عمومی، hardening و SSH tunneling.

متوسط۸ دقیقه مطالعهآخرین بروزرسانی: ۵ تیر ۱۴۰۵ویرایش در گیت‌هاب

SSH (Secure Shell) پروتکل استاندارد برای دسترسی امن از راه دور به سرورهای لینوکسی است. در این آموزش، با پیکربندی امن کلاینت و سرور SSH در Parrot OS آشنا می‌شویم.

SSH چیست؟#

SSH پروتکلی رمزنگاری‌شده برای دسترسی امن به شل راه دور، انتقال فایل و تونل‌سازی است. نسخهٔ استاندارد آن OpenSSH نام دارد و به‌صورت پیش‌فرض روی Parrot نصب است.

پورت‌ها و سرویس‌ها#

پورتسرویستوضیح
22sshdسرور SSH
22sshکلاینت SSH
22scp/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:8080

Remote Port Forwarding#

دسترسی از سرور به یک سرویس محلی شما:

# forwarding پورت 9090 سرور به پورت 8080 محلی شما
ssh -R 9090:localhost:8080 maryam@192.168.1.50

Dynamic 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 و فایروال، می‌توانید دسترسی امن و مطمئن به سرور داشته باشید.

به‌عنوان گام بعدی:

اشتراک‌گذاری:

این صفحه در تاریخ ۵ تیر ۱۴۰۵ به‌روزرسانی شده است.