خطای عدم مجوّز دسترسی SSH زمانی پدیدار می‌شود که تنظیمات مجوّز در سرور SSH دست‌کاری شده باشند. معمولاً این موضوع ناشی از نصب یک بسته جدید و ایجاد کاربران تازه برای سیستم است. در این آموزش، نحوه مقابله با خطای عدم مجوز  دسترسی SSH و ارتباط دوباره با سرور SSH را بررسی می‌کنیم.

پیش‌نیازها

  • کلاینت SSH در سیستم محلی و سرور SSH در سیستم ریموت
  • حساب کاربری برای دسترسی به سرور ریموت (برای ورود بر اساس کلمه عبور)
  • یک حساب کاربری با دسترسی sudo یا روت

چه چیزی باعث خطای عدم مجوّز دسترسی SSH می‌شود؟

خطای عدم مجوّز دسترسی SSH در هنگام ورود به سرور به صورت زیر نمایش داده می‌شود.


Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

نمایش خطای عدم مجوّز دسترسی SSH در زمان ورود به سرور

نمایش خطای عدم مجوّز دسترسی SSH در زمان ورود به سرور

پس از عبارت پیغام خطا، در داخل پرانتزها روش‌های تأییدیه به کار رفته برای شروع ارتباط ذکر شده‌اند. این خطا احتمال می‌دهد که کلید عمومی مشکل‌ساز شده است؛ موضوعی که ممکن است گمراه‌کننده باشد.

یکی از دلایل این خطا را احتمالاً باید در فایل تنظیمات سرورSSH، یعنی sshd_config جستجو کرد. احتمال دیگر فایل authorized_keys است که شاید حاوی مجوّزهای لازم نباشد. این فایل متشکل از لیست کلیدهای عمومی برای کلاینت‌های دارای مجوّز ورود SSH به سرور است. بر این اساس، اگر سیستم نتوانست نتواند فایل را به‌درستی بخواند منجر به خطای عدم مجوّز دسترسی SSH می‌شود.

نحوه رفع خطای دسترسی SSH

هر دو راه‌حل ارائه شده در اینکه دارای مراحلی برای انجام در سرور هستسند. بنابراین باید کار را باز کردن ترمینال در سررو آغاز کنید و یکی از دو راه‌حل زیر را دنبال نمایید.

راه‌حل شماره ۱: فعال‌سازی تأیید کلمه عبور

اگر قصد استفاده از یک کلمه عبور برای دسترسی به سرور SSH را دارید، بایستی بدانید که یکی از راه‌های مقابله با خطای عدم‌مجوّز دسترسی SSH، فعال‌سازی کلمه‌عبور در فایل sshd_config است.

برای این منظور، فایل را در یک ویرایشگر متنی باز کنید. در اینجا از برنامه nano برای این منظور استفاده می‌کنیم.


sudo nano /etc/ssh/sshd_config

در این فایل، خط PasswordAuthentication را پیدا کرده و حتماً انتهای آن را به yes تنظیم می‌کنیم.

سپس گزینه ChallengeResponseAuthentication را با افزودن کلمه no غیرفعال می‌کنیم.

اگر خطوط به صورت کامنت یا توضیح بودند، آنها را با حذف علامت # از این حالت خارج کنید.

ویرایش فایل shhd_config برای فعال‌سازی پسورد برای رفع خطای عدم مجوّز دسترسی SSH

ویرایش فایل shhd_config برای فعال‌سازی پسورد برای رفع خطای عدم مجوّز دسترسی SSH

حالا فایل را ذخیره کرده و ببندید.

نهایتاً سرویس SSH را با کمک فرمان زیر دوباره راه‌اندازی نمایید.


sudo systemctl restart sshd

راه‌حل شماره ۲: تغییر مجوّز‌های فایل سیستم

ورود مبتنی بر کلمه عبور به عنوان روش تأییدیه SSH، به دلیل نگرانی‌های امنیتی که ایجاد می‌کند توصیه نمی‌شود. بر این اساس، راه‌حل زیر که روش تأیید کلید عمومی را درنظر می‌گیرد، پیشنهاد می‌گردد.

برا این منظور، ابتدا فایل sshd_config را با کمک یک ویرایشگر متنی باز کنید.


sudo nano /etc/ssh/sshd_config

در این فایل، گزینه‌های زیر را به این صورت تنظیم کنید.


PermitRootLogin no

PubkeyAuthentication yes

ویرایش فایل shhd_config برای فعال‌سازی تأیید کلید عمومی

ویرایش فایل shhd_config برای فعال‌سازی تأیید کلید عمومی

نکته: در مراحلی که ذکر  شد، بیشترین سطح امنیتی درنظر گرفته است. در صورتی که نیاز به ورود کاربری روت دارید، خطوط مربوطه را با مقدار yes تنظیم کنید.

با اضافه کردن علامت هشتگ به ابتدای خطوط مربوط به GSSAPI، آنها را به حالت کامنت دربیاورید.


#GSSAPIAuthentication yes

#GSSAPICleanupCredentials no

ویرایش فایل shhd_config برای ایجاد حالت کامنت گزینه‌های GSSAPI

ویرایش فایل shhd_config برای ایجاد حالت کامنت گزینه‌های GSSAPI

همچنین، حتماً خط UsePAM را با مقدار yes تنظیم کنید.


UsePAM yes

ویرایش فایل shhd_config برای فعال‌سازی UsePAM

ویرایش فایل shhd_config برای فعال‌سازی UsePAM

فایل را ذخیره کرده و سرویس sshd را دوباره راه‌اندازی کنید.


systemctl restart sshd

حالا به سراغ فولدر خانگی خود بروید و مجوّزها را بررسی کنید.


ls -ld

بررسی مجوّزهای فولدر خانگی

بررسی مجوّزهای فولدر خانگی

اگر مجوزّهای owner شما برای خواندن، نوشتن و اجرا  تنظیم نشده‌اند، با استفاده از فرمان chmod آنها را تغییر دهید.


chmod 0700 /home/[your-username]

حالا به فولدر .ssh بروید و دوباره مجوّزها را بررسی کنید.


ls -ld

بررسی مجوّزهای فولدر .ssh

بررسی مجوّزهای فولدر .ssh

این فولدر بایستی دارای مجوّزهای خواندن، نوشتن و اجرا برای مالک فایل‌ها باشد. برای اِعمال این مجوّزها، دوباره از فرمان chmod استفاده کنید.


chmod 0700 /home/your_home/.ssh

فولدر .ssh حاوی فایل authorized_keys است. با کمک فرمان زیر، مجوّزهای آن را بررسی کنید.


ls –ld authorized_keys

بررسی مجوّزهای فایل authorized_keys

بررسی مجوّزهای فایل authorized_keys

مالک فایل باید مجوّزهای خواندن و نوشتن فایل را داشته باشد. برای تنظیم این مجوّزها داریم:


chmod 0600 /home/[username]/.ssh/authorized_keys

اکنون سعی کنید با جفت کلیدها وارد شوید. خروجی می‌بایست نشان‌دهنده یک ورود موفقیت‌آمیز باشد.

ورود موفق پس از رفع خطای عدم مجوّز دسترسی SSH

ورود موفق پس از رفع خطای عدم مجوّز دسترسی SSH

جمع‌‌بندی

در این آموزش، به مراحل لازم برای مواجهه با خطای عدم مجوّز دسترسی SSH پرداختیم. با تکمیل این مراحل، می‌توانید بدون هیچ مشکلی، دوباره از طریق SSH به سرور خود وارد شوید. امیدواریم که این مطلب نیز مورد توجه شما قرار گرفته باشد.