وصل شدن به vps از طریق Public Key

این چیزی که دارم مینویسم رو شاید خیلیا بلد باشن و واسشون ساده باشه اما واسه اونایی که تازه وارد دنیای لینوکس و کارهای مربوط به سرور شدن میتونه خیلی مفید باشه.همونطور که میدونید یکی از راه های وارد شدن به سرور لینوکسی از طریق ssh هست که به این صورت میتونید وارد سروری که دارید بشید:ssh user@ip_addressاما میشه راه بهتر و امن تری رو برای وارد به سرور انتخاب کرد.کلید های SSH بصورت جفت(کلید عمومی و کلید خصوصی) هستن.شما میتونید با ساختن یک کلید عمومی و خصوصی روی سیستمی که باهاش کار میکنید و اختصاص دادن اون به سرورتون بدون اینکه بخواید رمز وارد کنید وارد سرورتون بشید!مرحله اول: ساختن جفت کلید SSHاگه روی سیستم خودتون این فولدر رو ندارید باید اون رو بسازید:mkdir ~/.ssh chmod 700 ~/.sshو حالا باید کلید های جفت SSH رو بسازید:ssh-keygen -t rsa -b 4096قسمت -t rsa به این معنی هست که یک کلید جفتی RSA تولید می کنید و قسمت -b 4096 به این معنی هست که شما دارید کلید های ۴۰۹۶ بیتی تولید می کنید.بعد از اجرای این دستور باید با همچین چیزی مواجه بشید:اگر از شما پرسیده شد که کجا این فایل ذخیره بشه بدون نوشتن چیزی Enter اینتر بزنید.محل پیش فرض ذخیره ی کلید های SSH در قسمت: ~/.ssh/id_rsaهست. و حالا شما بعد از اجرای این دستور در فولدر .ssh باید دوتا فایل به اسم های id_rsa که شامل کلید خصوصی (private key) هست و id_rsa.pub که شامل کلید عمومی (public key) هست مواجه بشید.مرحله دوم: آپلود کردن کلید عمومی به سروربعد از اینکه وارد سرورتون شدید باید فولدر .ssh رو بسازید.cd ~ mkdir .sshو حالا باید محتویات داخل فایل id_rsa.pub رو به سرورتون منتقل کنید.با دستور (secure copy (SCP میتونید اینکار رو به راحتی انجام بدید.scp ~/.ssh/id_rsa.pub user@example.com:~/.ssh/uploaded_key.pub دستور scp دوتا آرگومان لازم داره که آرگومان اول در اینجا آدرس فایل کلید عمومی شما روی سیستم خودتون هست و آرگومان دوم محل ذخیره فایل کلید عمومی در سروری که دارید.برای مثال:scp <local location of the public key> <remote user>@<remote server address>:<destination file>و حالا باید محتویات فایل uploaded_key.pub داخل فایلی به اسم authorized_keys بریزیم.cat uploaded_key.pub >> authorized_keysدر نهایت باید کمی تغییر در فایل /etc/ssh/sshd_config بدید.RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysاگه این خط ها وجود داشتن و کامنت بودن، # رو از اول خط اونها بردارید.و حالا باید سرویس SSH سرور رو یک بار ریستارت کنید.sudo service ssh restartحالا میتونید به راحتی وارد سرورتون بشید.برای اینکار باید آدرس فایل کلید عمومی رو قبل از نوشتن نام کاربری سرورتون بنویسید.به این شکل:ssh -i <path to your private key> <user>@<remote server address> Example : ssh -i ~/.ssh/id_rsa root@192.168.56.166مرحله سوم: غیرفعال کردن رمز عبور برای وارد شدن به سروراین قسمت رو میتونید انجام ندید ولی برای امن تر کردن سرورتون میتونید نیاز به وارد کردن رمز عبور برای وارد شدن به سرورتون رو غیر فعال کنید. برای اینکار باید تغییراتی در فایل /etc/ssh/sshd_config بدید:PasswordAuthentication noو حالا دوباره باید سرویس SSH رو ریستارت کنید که این تنظیم ذخیره بشه. حالا دیگه نمیتونید با رمز وارد سرور بشید و فقط باید از کلید عمومی و فقط سیستم خودتون وارد سرور بشید.تنظیمات اضافیشما میتونید پورت پیش فرض برای وارد شدن به سرورتون رو هم عوض کنید چون بصورت پیش فرض پورت ۲۲ برای وارد شدن به سرورها در نظر گرفته شده که احتمال حمله به سرورتون رو زیاد میکنه. برایبستن دسترسی از این پورت میتونید قسمت زیر رو کامنت کنید تا از این اتفاق جلوگیری کنید.#Port 22امیدوارم این آموزش به شما کمک کرده باشه.