یکی از قابلیتهای بسیار عالی سیستم عامل لینوکس این است که بدون نیاز به رمز عبور و با استفاده از SSH Key ها میتوانیم وارد ترمینال لینوکس شویم. این قابلیت هم به افزایش امنیت سرورهای لینوکسی ما کمک می کند و هم به ما این امکان را می دهد تا با سرعت بیشتری وارد ترمینال سرور لینوکسی شویم.
توجه داشته باشید با استفاده از کلیدهای SSH، تنها کامپیوترهایی که SSH Key داشته باشند میتوانند وارد سیستم لینوکسی شوند. در غیر اینصورت باید مستقیما با استفاده از iLO یا سیستمهای مشابه مجددا ورود با رمز را برای سیستم لینوکس خود فعال کنید.
آنچه در این مقاله میخوانید
SSH Key چیست
کلیدهای ورود SSH تقریبا مثل SSL یا سیستم بیت کوین عمل می کنند. یک کلید public توسط سرور به سیستمهایی که میخواهند به سرور متصل شوند نمایش داده می شود. سیستم کلاینت با استفاده از PriveKey خودش قفل ورود به سرور را باز کرده و وارد سرور میشود. با این فرایند شما با استفاده از یک رمز عبور بسیار قوی که در سیستم شما ذخیره شده، قادر خواهید بود بدون نیاز به وارد کردن رمز عبور وارد سرور خود شوید.
استفاده از SSH Key و ساخت آن
حالا کافیست دستور زیر را در ترمینال خود وارد کنید.
ssh-keygen
حالا با چنین پیامی روبرو میشوید:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/reza/.ssh/id_rsa):
کافیست روی کلید enter بزنید اگر هم به شما پیام Overwrite نمایش داده شد Y را تایپ کرده و اینتر را مجدد بزنید.
سپس با این پیام روبرو میشوید:
Enter passphrase (empty for no passphrase):
از شما میخواهد رمز عبور دلخواه خود را وارد کنید. پیشنهاد میکنم اگر قصد دارید سریع وارد سرور خود شوید (البته اگر از امنیت سیستم خود اطمینان کامل دارید) بدون وارد کردن رمز روی اینتر کلیک کنید.
در نهایت با چنین پیامی روبرو میشوید:
The key fingerprint is:
SHA256:uMBogC4V1hJH0ma7dm2mXdOcuIkDOrZ1pu3ckE21hNk reza@rezas-iMac.local
The key's randomart image is:
+---[RSA 3072]----+
| o+o |
| =+ + |
| +... o E |
|.. o. . o . |
|o . ... S.+ .+ . |
|oo . .o.o+. + + |
|oo. ..o+*+o + |
|o +o.*+ o |
| ..== .. |
+----[SHA256]-----+
به همین راحتی! شما SSH Key را روی سیستم خود ساختید. حالا باید این SSH Key را به سرور متصل (ایمپورت) کنید.
کپی کردن SSH Key به سرور لینوکسی
برای کپی کردن SSH Key باید دستور زیر را تایپ کنید:
ssh-copy-id root@ip
or
cat ~/.ssh/id_rsa.pub | ssh <USERNAME>@<IP-ADDRESS> 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
به جای root باید نام کاربری سرور مورد نظر و به جای ip باید آیپی سرور لینوکسی خود را وارد کنید.
به شما پیامی مبنی بر اطمینان از وارد کردن SSH Key پرسیده میشود که باید yes را تایپ کنید.
Are you sure you want to continue connecting (yes/no)? yes
حالا رمز عبور ورود به سرور لینوکس از شما پرسیده میشود. با وارد کردن رمز، SSH Key در سرور شما نصب خواهد شد و به همین راحتی حالا میتوانید با وارد کردن دستور زیر، بدون نیاز به وارد کردن رمز عبور سرور لینوکس خود، وارد سرور شوید.
ssh root@ip
حالا مشاهده خواهید کرد که موقع ورود نیازی به رمز نخواهید داشت. اگر قابلیت ورود با رمز را هم روی SSH فعال کنید که عالیتر میشود و امنیت سرور سایت خود را چند پله افزایش دادهاید.
موفق باشید
راه حل دیگر: