
آموزش تغییر رمز سرور مجازی لینوکس؛ راهنمای امن و مرحله به مرحله
مقدمه:
برای تغییر رمز سرور مجازی لینوکس معمولاً کافی است از طریق SSH وارد سرور شوید، دستور passwd را اجرا کنید و رمز جدید را دو بار وارد کنید. اگر قصد تغییر رمز کاربر دیگری یا حساب root را دارید، باید دسترسی sudo یا مدیریتی داشته باشید. در این آموزش تغییر رمز سرور مجازی لینوکس، روش انجام کار در Ubuntu، Debian، CentOS، AlmaLinux و Rocky Linux، نکات امنیتی و راه بازیابی رمز فراموششده را بررسی میکنیم.
فهرست مطالب
- پیشنیازهای تغییر رمز سرور لینوکس
- تغییر رمز کاربر فعلی با دستور passwd
- تغییر رمز root و سایر کاربران
- تفاوت رمز لینوکس با رمز SSH Key
- تغییر رمز از طریق پنل یا کنسول VPS
- بازیابی رمز فراموششده سرور
- انتخاب رمز عبور امن
- خطاهای رایج و روش رفع آنها
- اقدامات امنیتی بعد از تغییر رمز
- جمع بندی
- سؤالات متداول
پیشنیازهای تغییر رمز سرور مجازی لینوکس
پیش از اجرای دستور، مطمئن شوید نام کاربری، IP سرور و یکی از روشهای معتبر ورود را در اختیار دارید. برای تغییر رمز حساب فعلی به دسترسی مدیریتی نیاز ندارید، اما تغییر رمز کاربران دیگر معمولاً مستلزم دسترسی root یا امکان اجرای sudo است.
اگر سرور میزبان سایت یا سرویس مهمی است، از اطلاعات و فایلهای پیکربندی مهم نسخه پشتیبان تهیه کنید. دستور passwd بهطور معمول فایلهای سایت را تغییر نمیدهد، اما داشتن بکاپ و دسترسی به کنسول اضطراری هنگام انجام تغییرات مدیریتی ضروری است.
همچنین توصیه میشود نشست SSH فعلی را تا زمان آزمایش رمز جدید نبندید. بازبودن این نشست کمک میکند اگر رمز جدید پذیرفته نشد یا ورود SSH محدود بود، همچنان امکان بررسی تنظیمات را داشته باشید.
برای مشاهده نام کاربری فعلی میتوانید دستور زیر را اجرا کنید:
whoami
برای اطمینان از دسترسی sudo نیز از این دستور استفاده کنید:
sudo -v
اگر دستور دوم بدون خطای مجوز اجرا شود، حساب شما احتمالاً اجازه انجام عملیات مدیریتی را دارد.
اگر به تنظیمات مدیریتی سرور دسترسی ندارید یا نگران قطعشدن دسترسی SSH هستید، کارشناسان شرکت تجارت الکترونیک نوژن میتوانند وضعیت دسترسی و روش امن تغییر رمز را پیش از اجرای تغییرات بررسی کنند.
مطالعه بیشتر: کارهای ضروری بعد از خرید سرور مجازی اوبونتو
آموزش تغییر رمز سرور مجازی لینوکس با دستور passwd
دستور اصلی برای تغییر رمز حسابهای کاربری در لینوکس، passwd است. کاربر عادی میتواند رمز حساب خودش را تغییر دهد و کاربر دارای دسترسی مدیریتی میتواند برای حسابهای دیگر نیز رمز جدید تعیین کند.
مرحله اول: اتصال به سرور با SSH
در لینوکس، macOS یا نسخههای جدید ویندوز میتوانید ترمینال را باز کرده و دستور زیر را اجرا کنید:
ssh username@SERVER_IP
بهجای username نام کاربری و بهجای SERVER_IP آدرس IP سرور را بنویسید. برای مثال:
ssh admin@192.0.2.10
اگر SSH روی پورتی غیر از ۲۲ تنظیم شده است، شماره پورت را با گزینه -p مشخص کنید:
ssh -p 2222 admin@192.0.2.10
عدد 2222 فقط نمونه است و باید با پورت واقعی سرور جایگزین شود.
مرحله دوم: تغییر رمز حساب فعلی
بعد از ورود، دستور زیر را اجرا کنید:
passwd
در بیشتر توزیعها ابتدا رمز فعلی درخواست میشود. سپس باید رمز جدید را وارد کرده و برای تأیید، همان رمز را دوباره بنویسید.
هنگام تایپ رمز در ترمینال هیچ حرف، نقطه یا ستارهای نمایش داده نمیشود. این رفتار طبیعی است و به معنی از کار افتادن صفحهکلید نیست. رمز را دقیق وارد کرده و کلید Enter را فشار دهید.
نمونه روند اجرا ممکن است شبیه زیر باشد:
Changing password for user admin.
Current password:
New password:
Retype new password:
passwd: password updated successfully
اگر پیام موفقیت نمایش داده شد، رمز حساب تغییر کرده است.
مرحله سوم: آزمایش رمز جدید
نشست فعلی را باز نگه دارید و در یک پنجره ترمینال جدید دوباره به سرور متصل شوید:
ssh admin@192.0.2.10
رمز جدید را وارد کنید. تنها پس از موفقیت ورود در نشست دوم، اتصال قبلی را ببندید.
این آزمایش به ویژه زمانی اهمیت دارد که سرور از تنظیمات سفارشی SSH، محدودیت IP یا ابزارهایی مانند Fail2ban استفاده میکند.
چگونه رمز کاربر دیگری را تغییر دهیم؟
اگر به sudo دسترسی دارید، برای تغییر رمز یک حساب دیگر از قالب زیر استفاده کنید:
sudo passwd USERNAME
برای نمونه، جهت تعیین رمز جدید برای کاربری با نام webadmin اجرا کنید:
sudo passwd webadmin
در این حالت معمولاً رمز فعلی webadmin درخواست نمیشود؛ زیرا عملیات با مجوز مدیریتی انجام شده است. سیستم از شما میخواهد رمز جدید را دو بار وارد کنید.
پیش از اجرای دستور، وجود کاربر را بررسی کنید:
id webadmin
اگر اطلاعات UID و گروههای کاربر نمایش داده شد، حساب وجود دارد. اگر پیام no such user دریافت کردید، املای نام کاربری را بررسی کنید.
[لینک داخلی پیشنهادی: انکرتکست «ایجاد کاربر sudo و محدودکردن استفاده از root» ← مقاله مدیریت کاربران در لینوکس]
تغییر رمز root در سرور لینوکس
اگر مستقیماً با حساب root وارد شدهاید، این دستور رمز همان حساب را تغییر میدهد:
passwd
اگر با یک کاربر دارای دسترسی sudo وارد شدهاید، میتوانید رمز root را با دستور زیر تعیین یا تغییر دهید:
sudo passwd root
بااینحال، تعیین رمز برای root به معنی مجازشدن ورود مستقیم root از طریق SSH نیست. تنظیماتی مانند PermitRootLogin و روشهای احراز هویت مجاز در OpenSSH جداگانه کنترل میشوند.
در Ubuntu معمولاً مدیریت سیستم از طریق یک کاربر عضو گروه sudo انجام میشود و حساب root میتواند از نظر ورود با رمز غیرفعال باشد. مستندات رسمی Ubuntu نیز استفاده از sudo و امکان قفلکردن رمز root را توضیح میدهد.
فعالکردن ورود مستقیم root صرفاً برای راحتی توصیه نمیشود. بهتر است یک حساب مدیریتی جداگانه، دسترسی sudo و ورود مبتنی بر SSH Key داشته باشید.
مقایسه روشهای تغییر یا بازیابی رمز
| وضعیت | روش مناسب | دستور یا ابزار | سطح دسترسی لازم | نکته مهم |
|---|---|---|---|---|
| رمز حساب فعلی را میدانید | تغییر از داخل SSH | passwd |
دسترسی همان کاربر | معمولاً رمز فعلی درخواست میشود |
| رمز کاربر دیگری باید تغییر کند | استفاده از sudo | sudo passwd username |
دسترسی sudo یا root | نام کاربر را قبل از اجرا بررسی کنید |
| رمز root باید تغییر کند | تعیین رمز با sudo | sudo passwd root |
دسترسی sudo | ورود SSH برای root ممکن است همچنان بسته باشد |
| رمز ورود را فراموش کردهاید | کنسول یا Rescue Mode | پنل ارائهدهنده VPS | دسترسی به پنل سرویس | مراحل به زیرساخت و توزیع لینوکس بستگی دارد |
| ورود فقط با SSH Key انجام میشود | تغییر رمز حساب در صورت نیاز | passwd یا sudo passwd |
نشست معتبر یا sudo | تغییر رمز، کلید SSH را عوض نمیکند |
| حساب قفل شده است | بررسی وضعیت حساب | sudo passwd -S username |
دسترسی مدیریتی | بدون بررسی علت، حساب را فعال نکنید |
برای مشاهده سرویسهای قابل مدیریت و انتخاب زیرساخت متناسب با سایت یا نرمافزار خود، میتوانید صفحه خدمات سرور مجازی شرکت تجارت الکترونیک نوژن را بررسی کنید. در سرویسهای عملیاتی، دسترسی اضطراری و شیوه مدیریت امن حسابها باید از ابتدای راهاندازی مشخص باشد.
[لینک داخلی پیشنهادی: انکرتکست «خرید سرور مجازی متناسب با نیاز پروژه» ← صفحه خدمات سرور مجازی]
تفاوت رمز لینوکس با رمز SSH Key
رمز حساب لینوکس و کلید SSH دو روش احراز هویت متفاوت هستند. دستور passwd رمز محلی حساب را تغییر میدهد، اما فایلهای کلید عمومی موجود در مسیر ~/.ssh/authorized_keys را عوض نمیکند.
اگر ورود با رمز در تنظیمات SSH غیرفعال باشد، حتی بعد از تغییر موفق رمز نیز ممکن است نتوانید با رمز وارد سرور شوید. در این وضعیت باید از کلید خصوصی معتبر استفاده کنید یا تنظیمات SSH را با احتیاط و از طریق دسترسی مدیریتی بررسی کنید.
پیش از تغییر تنظیمات SSH، یک نشست فعال و دسترسی کنسول اضطراری داشته باشید. پس از ویرایش نیز ابتدا صحت پیکربندی را آزمایش کنید تا یک خطای نگارشی باعث از دست رفتن دسترسی نشود.
OpenSSH امکان کنترل جداگانه روشهای ورود، احراز هویت با رمز و ورود root را فراهم میکند؛ بنابراین موفقیت دستور passwd بهتنهایی تضمین نمیکند که ورود رمزی در SSH مجاز باشد.
[لینک داخلی پیشنهادی: انکرتکست «فعالسازی ورود امن با SSH Key» ← مقاله آموزش ساخت و تنظیم کلید SSH]
تغییر رمز در Ubuntu، Debian، CentOS و Rocky Linux
فرمان پایه در توزیعهای رایج یکسان است:
passwd
برای حساب دیگر نیز از این قالب استفاده میشود:
sudo passwd username
تفاوت اصلی معمولاً در شیوه دریافت دسترسی مدیریتی است. در Ubuntu و Debian اغلب از sudo استفاده میشود، درحالیکه در برخی نصبهای CentOS، AlmaLinux یا Rocky Linux ممکن است مدیریت مستقیم root یا حسابی عضو گروه مدیریتی تنظیم شده باشد.
پیامهای مربوط به پیچیدگی رمز نیز ممکن است متفاوت باشند. این تفاوت به ماژولهای PAM و سیاست امنیتی پیکربندیشده روی سرور مربوط است؛ بنابراین یک رمز ممکن است روی یک سرور پذیرفته و روی سرور دیگر رد شود.
اگر رمز VPS را فراموش کردهایم چه کار کنیم؟
اگر هیچ نشست فعالی ندارید و ورود با SSH Key نیز ممکن نیست، دستور passwd را نمیتوانید از راه دور اجرا کنید. در این وضعیت باید از کنسول تحت وب، VNC، Serial Console، Rescue Mode یا قابلیت بازنشانی رمز در پنل ارائهدهنده استفاده کنید.
روش اول: بازنشانی از پنل ارائه دهنده
برخی پنلهای سرور مجازی گزینهای برای Reset Password یا تغییر رمز root دارند. عملکرد این قابلیت به نوع مجازیسازی، سیستمعامل و تنظیمات ارائهدهنده بستگی دارد.
پس از بازنشانی، راهنمای همان پنل را مطالعه کنید. ممکن است سرور نیازمند خاموش و روشنشدن، اجرای اسکریپت یا استفاده از کنسول باشد.
روش دوم: استفاده از کنسول اضطراری
اگر کنسول سرور در دسترس است، ممکن است بتوانید با حساب دیگری که دسترسی sudo دارد وارد شوید و رمز کاربر موردنظر را تغییر دهید:
sudo passwd username
این روش بدون ایجاد تغییر در SSH انجام میشود و برای زمانی مناسب است که سرویس SSH در دسترس نیست اما سیستمعامل کار میکند.
روش سوم: Rescue Mode یا Recovery Mode
در این روش سیستم با محیط بازیابی راهاندازی میشود، پارتیشن اصلی متصل شده و رمز از داخل محیط مناسب تغییر میکند. جزئیات فرمانها به توزیع، نوع دیسک، LVM، رمزنگاری و پنل ارائهدهنده بستگی دارد.
اجرای دستورهای عمومی و حدسی در محیط Rescue میتواند باعث اتصال اشتباه پارتیشن یا تغییر سیستم دیگری شود. اگر ساختار دیسک را نمیشناسید، از مستندات ارائهدهنده یا مدیر سرور کمک بگیرید.
چگونه یک رمز امن برای سرور انتخاب کنیم؟
رمز سرور نباید شامل نام شرکت، دامنه، شماره تماس، نام کاربری یا الگوهای قابل حدس باشد. استفاده از یک عبارت عبور طولانی و منحصربهفرد معمولاً از یک رمز کوتاه با جایگزینیهای ساده قابلاعتمادتر است.
این اصول را رعایت کنید:
- برای هر سرور و هر حساب، رمز جداگانه تعیین کنید.
- رمز را در پیامرسان، ایمیل عادی یا فایل متنی بدون محافظت نگهداری نکنید.
- از یک مدیر رمز عبور معتبر برای تولید و نگهداری رمز استفاده کنید.
- رمز پیشفرض ارائهدهنده را پس از تحویل سرور تغییر دهید.
- دسترسیهای مدیریتی را فقط به افراد ضروری بدهید.
- برای ورود روزمره از حساب root استفاده نکنید.
- در صورت امکان، SSH Key را جایگزین ورود رمزی کنید.
- پیش از غیرفعالکردن ورود با رمز، ورود از طریق کلید را در یک نشست جدید آزمایش کنید.
تغییر مکرر و بدون دلیل رمز، اگر باعث انتخاب رمزهای ساده و قابل پیشبینی شود، بهتنهایی امنیت ایجاد نمیکند. تغییر رمز هنگام تحویل سرور، تغییر مدیر، افشای احتمالی، مشاهده ورود مشکوک یا پایان همکاری یک فرد ضروریتر است.
خطاهای رایج هنگام تغییر رمز سرور
خطای Authentication token manipulation error
این خطا میتواند به مشکلات مجوز، فقطخواندنیشدن فایلسیستم، پرشدن فضای دیسک یا اشکال در فایلهای مرتبط با حسابها مربوط باشد. ابتدا وضعیت فضا را بررسی کنید:
df -h
سپس وضعیت mount فایلسیستم را بررسی کنید:
mount | grep ' / '
اگر فایلسیستم فقطخواندنی شده یا دیسک خطا دارد، پیش از هر اقدام علت اصلی را بررسی کنید. تغییر مجوز فایلهای سیستمی بدون شناخت دقیق میتواند وضعیت را بدتر کند.
خطای password unchanged
این پیام معمولاً یعنی رمز جدید ثبت نشده است. ممکن است دو بار ورود رمز یکسان نبوده، رمز سیاست امنیتی سیستم را رعایت نکرده یا مجوز کافی وجود نداشته باشد.
دستور را دوباره اجرا کرده و پیامهای قبل از خطا را با دقت بخوانید. برای تغییر رمز کاربر دیگر از sudo استفاده کنید.
پیام BAD PASSWORD
این پیام نشان میدهد رمز انتخابی با سیاست امنیتی سیستم سازگار نیست یا ضعیف تشخیص داده شده است. رمز طولانیتر و غیرقابل حدستری انتخاب کنید و از اطلاعات شخصی یا الگوهای ساده استفاده نکنید.
تغییر رمز موفق است، اما ورود SSH انجام نمیشود
در این حالت ابتدا بررسی کنید که نام کاربری و IP درست باشند. سپس احتمال غیرفعالبودن PasswordAuthentication، ممنوعیت ورود root، قفلبودن حساب، مسدودشدن IP یا متفاوتبودن پورت SSH را در نظر بگیرید.
برای مشاهده وضعیت رمز حساب میتوان از دستور زیر استفاده کرد:
sudo passwd -S username
این خروجی باید همراه با سیاستهای حساب و تنظیمات SSH تفسیر شود. قفل یا بازکردن حساب را بدون شناخت علت انجام ندهید.
رمز جدید هنگام تایپ نمایش داده نمیشود
این حالت خطا نیست. ترمینال لینوکس هنگام دریافت رمز معمولاً هیچ کاراکتری نمایش نمیدهد. زبان صفحهکلید، Caps Lock و Num Lock را بررسی کرده و رمز را با دقت وارد کنید.
اقدامات امنیتی بعد از تغییر رمز سرور
پس از تأیید ورود با رمز جدید، نشستها و لاگهای ورود را بررسی کنید. برای مشاهده ورودهای اخیر میتوانید از دستور زیر استفاده کنید:
last
برای دیدن نشستهای فعال نیز از یکی از فرمانهای زیر کمک بگیرید:
who
w
اگر تغییر رمز به دلیل احتمال نفوذ انجام شده است، تنها عوضکردن رمز کافی نیست. کلیدهای SSH، کاربران دارای دسترسی، وظایف Cron، پردازشها، سرویسهای فعال، لاگهای ورود و فایلهای تغییریافته نیز باید بررسی شوند.
همچنین اعتبارنامههای مرتبط با کنترلپنل، پایگاه داده، مخزن کد و سرویسهای متصل را ارزیابی کنید. مهاجمی که قبلاً به سرور دسترسی داشته است ممکن است راه ورود دیگری ایجاد کرده باشد.
[لینک داخلی پیشنهادی: انکرتکست «ایمنسازی SSH در سرور لینوکس» ← مقاله تنظیمات امنیتی SSH و جلوگیری از ورود غیرمجاز]
مطالعه بیشتر: راهاندازی فایروال UFW در اوبونتو
چک لیست سریع تغییر رمز لینوکس
- از اطلاعات مهم یا تنظیمات حساس نسخه پشتیبان تهیه کردهاید.
- به پنل یا کنسول اضطراری VPS دسترسی دارید.
- نام کاربری موردنظر را با
whoamiیاidبررسی کردهاید. - نشست SSH فعلی را تا پایان آزمایش باز نگه داشتهاید.
- برای حساب فعلی از
passwdاستفاده کردهاید. - برای کاربر دیگر از
sudo passwd usernameاستفاده کردهاید. - رمز جدید طولانی، منحصربهفرد و غیرقابل حدس است.
- ورود را در یک پنجره جدید آزمایش کردهاید.
- تفاوت رمز حساب و SSH Key را در نظر گرفتهاید.
- در صورت مشاهده فعالیت مشکوک، بررسی امنیتی کامل انجام دادهاید.
جمع بندی
در این آموزش تغییر رمز سرور مجازی لینوکس دیدیم که برای حساب فعلی، اجرای دستور passwd کافی است. برای تغییر رمز کاربر دیگر باید از دستور sudo passwd username استفاده شود و تغییر رمز root نیز با sudo passwd root امکانپذیر است؛ البته داشتن رمز root الزاماً ورود مستقیم آن را از طریق SSH فعال نمیکند.
پس از تغییر رمز، نشست فعلی را نبندید و ابتدا ورود را در یک پنجره جدید آزمایش کنید. اگر رمز فراموش شده و هیچ روش ورود دیگری ندارید، باید از پنل، کنسول اضطراری یا Rescue Mode ارائهدهنده کمک بگیرید.
در صورت احتمال نفوذ، تعویض رمز تنها بخشی از فرایند است. بررسی کاربران، کلیدهای SSH، لاگها، سرویسها و راههای دسترسی باقیمانده نیز اهمیت دارد.
اگر در تغییر یا بازیابی رمز VPS با خطا روبهرو شدهاید، یا میخواهید دسترسیهای سرور بهشکل اصولی ایمنسازی شوند، میتوانید برای بررسی فنی و مشاهده خدمات زیرساخت با شرکت تجارت الکترونیک نوژن در ارتباط باشید.
سؤالات متداول
۱. دستور تغییر رمز سرور مجازی لینوکس چیست؟
برای تغییر رمز حسابی که با آن وارد شدهاید، دستور passwd را اجرا کنید. پس از واردکردن رمز فعلی، رمز جدید را دو بار بنویسید.
۲. چگونه رمز root را در Ubuntu تغییر دهیم؟
اگر حساب شما دسترسی sudo دارد، دستور sudo passwd root را اجرا کنید. توجه داشته باشید که این کار لزوماً ورود مستقیم root از طریق SSH را فعال نمیکند.
۳. چگونه رمز یک کاربر دیگر را تغییر دهیم؟
از دستور sudo passwd username استفاده کنید و username را با نام واقعی کاربر جایگزین کنید. این عملیات به دسترسی sudo یا root نیاز دارد.
۴. چرا هنگام واردکردن رمز چیزی نمایش داده نمیشود؟
لینوکس هنگام دریافت رمز در ترمینال معمولاً هیچ حرف یا علامتی نمایش نمیدهد. این رفتار امنیتی طبیعی است؛ رمز را تایپ کرده و Enter بزنید.
۵. آیا بعد از تغییر رمز باید سرور را ریاستارت کنیم؟
خیر، تغییر رمز با passwd معمولاً به راهاندازی مجدد سرور نیاز ندارد. بهتر است پیش از بستن نشست فعلی، ورود با رمز جدید را در یک اتصال جداگانه آزمایش کنید.
۶. اگر رمز VPS را فراموش کنیم، چگونه آن را بازیابی کنیم؟
اگر SSH Key یا حساب مدیریتی دیگری ندارید، باید از قابلیت Reset Password، کنسول، Rescue Mode یا Recovery Mode پنل ارائهدهنده استفاده کنید. مراحل دقیق به زیرساخت و توزیع لینوکس بستگی دارد.
۷. آیا تغییر رمز باعث غیرفعالشدن SSH Key میشود؟
خیر. دستور passwd رمز حساب را تغییر میدهد و کلیدهای موجود در authorized_keys را حذف یا جایگزین نمیکند. برای لغو دسترسی یک کلید باید آن را جداگانه بررسی و حذف کنید.