گامبگام اتصال به چند حساب گیت‌لب/گیت‌هاب با SSH در لینوکس/مک

در این گامبگام با گام‌های پیکریدن (پیکربندی) گیت برای وصل شدن به دو حساب، یکی در گیت‌لب و دیگری گیت‌هاب، با پروتکل SSH آشنا می‌شوی؛ همچنین چگونگی تعمیم اش (یعنی وصل شدن به چند حساب گیت‌لب/گیت‌هاب) را هم خواهی فهیمد.توجه. چون علاقه زیادی به آسان کردن [آسانیدن] و باقاعده کردن زبان دارم، واژگان زیادی ساخته‌ام؛ که بدلیل ناشناخته بودن اشان تنها برای شناساندن ازشان استفاده کرده‌ام [استفاده‌ام]. ریشه‌ی بیشتر این واژگان آشکار است؛ و در ویکی‌واژه تعریفشان کرده‌ام [تعریفته‌ام اشان] یا خواهم کرد [تعریفینم اشان].امیدوارم خوشایندت باشد. اعلانیدن نام و رایانامه. ابتدا برای اینکه بتوانی از فرمان‌های مدیریت مخزن (repository) گیت استفاده کنی [باستفایی]، باید نام و رایانامه‌ات را پیکربندی کنی [بپیکری]:git config --global user.name &quot[نامت]&quot git config --global user.email &quot[رایانامه‌ات]&quot # توصیه می‌کنم دستور زیر را برای رفتار بهتر گیت با نویسه پایان خط فایل اجرا کنی git config --global core.autocrlf input # اگر از ویژوال استودیو کد استفاده می‌کنی، می‌توانی با دستور زیر بعنوان ویرایشگر پیشفرض گیتت معرفی اش کنی git config --global core.editor &quotcode --wait&quotساختن یه زوج‌کلید SSH. در این گام برای هر حسابت باید یه زوج‌کلید عمومی/خصوصی ایجاد کنی (بنا به نیاز خودت می‌توانی پارامتر تگ‌ها را تغییر دهی):- تگ t برای تعیین نوع رمزنگاری است؛ که برای بیشتر کاربردها ed25519 مناسبه (برای دیدن گزینه‌های دیگر دستور `ssh-keygen --help` را اجرا کن)؛- تگ C برای درج یادداشتی است که هنگام بکاربردن کلید هه بهت نشان داده می‌شود؛- تگ f هم برای تعیین مسیری است که کلیدهای عمومی/خصوصیت ذخیره می‌شوند.# حساب اصلی گیت‌لبت ssh-keygen -t ed25519 -C &quotGitlab: $(git config --global user.email)&quot -f ~/.ssh/gitlab_ed25519 # حساب اصلی گیت‌هابت ssh-keygen -t ed25519 -C &quotGithub: $(git config --global user.email)&quot -f ~/.ssh/github_ed25519 ... # اگر حساب کاری هم داری از دستور زیر استفاده کن ssh-keygen -t ed25519 -C &quotGitlab: [email_work@email.com]&quot -f ~/.ssh/gitlab_work_ed25519 ssh-keygen -t ed25519 -C &quotGithub: [email_work@email.com]&quot -f ~/.ssh/github_work_ed25519افزودن کلید SSH به حساب‌ها. در این گام باید کلیدهای عمومی‌ات را به حسابت‌هایت در گیت‌لب/گیت‌هاب بافزایی. برای بدستاوردن کلیدهای عمومی‌ات می‌توانی از فرمان‌های زیر استفاده کنی (اگر در گام پیش مسیر نگهداری زوج‌کلیدها را تغییر داده‌ای باید فرمان‌های زیر را اصلاح کنی):# حساب اصلی گیت‌لب cat ~/.ssh/gitlab_ed25519.pub # یا xclip -sel clip < ~/.ssh/gitlab_ed25519.pub # حساب اصلی گیت‌هاب cat ~/.ssh/github_ed25519.pub # یا xclip -sel clip < ~/.ssh/github_ed25519.pub ... # حساب کاری گیت‌لب cat ~/.ssh/gitlab_work_ed25519.pub # یا xclip -sel clip < ~/.ssh/gitlab_work_ed25519.pub # حساب کاری گیت‌هاب cat ~/.ssh/github_work_ed25519.pub # یا xclip -sel clip < ~/.ssh/github_work_ed25519.pubبررسیدن. برای اطمینان از درستی کار، فرمان‌های زیر را اجرا کن [باجرای]:# بررسیدن اتصال گیت‌لب ssh -T git@gitlab.com -i ~/.ssh/gitlab_ed25519 # بررسیدن اتصال گیت‌هاب ssh -T git@github.com -i ~/.ssh/github_ed25519اداریدن کلیدها. برای اینکه گلیت هنگام وصل‌شدن به گیت‌لب یا گیت‌هاب از کلید درست استفاده کند، باید فایل `config` را در مسیر زوج‌کلیدهایت بسازی و همانند زیر کلید-مقدارها را تعریف کنی:# ~/.ssh/config # یه نام دلخواه که باهاش به این هاست اشارده می‌شود Host [username].gitlab.com HostName gitlab.com # نام دامنه‌ی میزبان (هاست) موردنظر User git # اختیاری PreferredAuthentications publickey IdentityFile ${identityfile} # مسیر کلید خصوصی بشکل مطلق ... # برای مورد ما # gitlab.com Host gitlab.com HostName gitlab.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab_ed25519 # github.com Host github.com HostName github.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/github_ed25519افزودن زوج‌کلیدها به شناخته‌شده‌ها. برای اینکه هربار مجبور نباشی هنگام وصل‌شدن به گیت‌هاب/گیت‌لب گذرنام (passphrase) را وارد کنی، فرمان‌های زیر را اجرا کن:# حساب اصلی گیت‌لب ssh-add ~/.ssh/gitlab_ed25519 # حساب اصلی گیت‌هاب ssh-add ~/.ssh/github_ed25519درستجیدن (صحت یابی) پیکرال. برای اینکه از درستی فایل config ات مطمئن شوی، فرمان‌های زیر را اجرا کن:# حساب اصلی گیت‌لب ssh -T git@gitlab.com # حساب اصلی گیت‌هاب ssh -T git@github.comاستفادن. اگر بیش از یک حساب در گیت‌لب/گیت‌هاب داری، حالا باید تعیین کنی کی از کدام کلید استفاده شود. برای اینکار کافیه هنگام تعریف remote گیت یه مخزن خاص، بخش هاست یه repo را با عنوانی که در فایل config تعیین کردی عوض کنی. برای نمونه، اگر در فایل config ات هاست Host wrk.gitlab.com را تعریف کرده‌ای، کافیه بخش دامنه مسیر یه مخزن را همانند زیر تغییر بدهی:git remote origin git@gitlab.com:hakhsin/maktabkhooneh.git # را تغییر بدهی به git remote origin git@wrk.gitlab.com:hakhsin/maktabkhooneh.gitهمین!