اگر تجربه کار با افزونه ی remote-ssh در vscode رو داشته باشید می دونید که برای اتصال به سرور ناچارید هربار پسورد root رو وارد کنید. برای حل این مشکل میشه از public/private key authentication استفاده کرد. به این صورت که اول روی کامپیوتر خودمون با ابزار ssh-keygen یک کلید ایجاد میکنیم. بعد public key ایجاد شده رو به سرور منتقل میکنیم. و نهایتاً به vscode میگیم که از این کلید (Private Key) به جای پسورد برای اتصال به سرور استفاده کنه. به همین سادگی!
1 - توجه کنید که حتماً باید openssh client روی کامپیوتر local نصب باشه. آموزش نصب
2 - یه powershell با دسترسی ادمین باز کنید و تایپ کنید : ssh-keygen و کلید رو در مسیر C:\Users\{username}/.ssh/id_rsa ایجاد کنید. passphrase هم نمیخواد. توضیحات بیشتر
3 - با mobaXterm یا putty هر ابزار دلخواه دیگه ای کانکت بشید به سرور.
4 - کلید پابلیک ایجاد شده (id_rsa.pub) رو کپی کنید توی فولدر /root/.ssh سرور (اگر لازم بود فولدر رو ایجاد کنید). و اسمش رو به authorized_keys تغییر بدید.
5 - دسترسی فولدر /root/.ssh باید 700 باشه و دسترسی فایل root/.ssh/authorized_keys باید 600!
6 - فایل etc/ssh/sshd_config سرور رو هم به این شکل بروز رسانی کنید :
PubkeyAuthentication yes
RSAAuthentication Yes
PermitRootLogin Yes
StrictModes no
AuthorizedKeysFile .ssh/authorized_keys
7 - بعد systemctl restart sshd
8 - توی تنظیمات vscode سرچ کنید remoet ssh و در قسمت Remote.SSH: Config File مقدار C:\Users\{username}\.ssh\config رو وارد کنید.
9 - حالا همون فایل C:\Users\{username}\.ssh\config رو باز کنید و تنظیمات اتصال به سرور رو اینطوری وارد کنید :
Host {title}
HostName {ip}
User root
IdentityFile C:\Users\{username}\.ssh\id_rsa
10 - و در نهایت توی vscode کلید f1 رو بزنید و بعد گزینه ی Remote-SSH: Connect To Host رو انتخاب کنید. ازتون سرور رو سوال میکنه. سروری که بالا اضافه کرده بودیم رو انتخاب کنید و بدون نیاز به وارد کردن کلمه عبور به سرور متصل بشید و develop کنید ;)