برنامه نویسی

زندگی برنامه نویس خود را با Git، SSH و GPG ساده کنید: چگونه با میزبان کدهای متعدد کار کنید و تعهدات خود را به راحتی امضا کنید

مدیریت چندین میزبان Git می تواند چالش برانگیز باشد، به خصوص در هنگام استفاده از کلیدهای مختلف GPG و SSH. این مقاله شما را در فرآیند تولید کلیدهای SSH و GPG، افزودن آنها به عامل SSH محلی و میزبان های گیت راه دور، پیکربندی میزبان های متعدد برای استفاده از کلیدهای مختلف، و پیکربندی Git محلی برای استفاده از چندین کلید GPG برای میزبان های مختلف Git راهنمایی می کند.

تولید کلیدهای SSH

اگر کلیدهای SSH را قبلاً تولید و به هاست راه دور و عامل SSH محلی خود اضافه کرده‌اید، می‌توانید رد شده و به عنوان بعدی بروید، در غیر این صورت، می‌توانید زیر را دنبال کنید تا تنظیمات SSH را انجام دهید:

  1. یک ترمینال را باز کنید و دستور زیر را برای ایجاد یک کلید SSH جدید اجرا کنید:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  2. برای انتخاب مکانی برای فایل کلید و تنظیم یک عبارت عبور، دستورات را دنبال کنید. گزینه های پیش فرض معمولا کافی هستند.

  3. پس از تولید کلید، دستور زیر را برای نمایش کلید عمومی اجرا کنید:

    cat ~/.ssh/id_rsa.pub
    
  4. کل محتویات کلید عمومی را در کلیپ بورد خود کپی کنید.

افزودن کلید SSH به میزبان راه دور

در وب سایت میزبان کد، به تنظیمات حساب خود بروید و گزینه اضافه کردن یک کلید SSH جدید را پیدا کنید. کلید عمومی را در قسمت ورودی قرار دهید و کلید را ذخیره کنید.

افزودن کلید SSH به عامل SSH شما

  1. یک ترمینال را باز کنید و دستور زیر را برای راه اندازی عامل SSH اجرا کنید

    eval "$(ssh-agent -s)"
    
  2. آن را به عامل اضافه کنید

    ssh-add ~/.ssh/id_rsa
    

می توانید موارد بالا را برای چندین هاست Git که با آنها سروکار دارید تکرار کنید تا هر میزبان کلید SSH متفاوتی داشته باشد.

پیکربندی خودکار کلید SSH در هر میزبان

هنگام کار با چندین میزبان کد، مانند GitHub، GitLab و Bitbucket، داشتن یک ورودی میزبان جداگانه برای هر میزبان در خود می تواند مفید باشد. ~/.ssh/config فایل. این به شما امکان می دهد بدون نیاز به یادآوری URL های مختلف یا کلیدهای SSH به راحتی بین هاست ها جابجا شوید.

در اینجا مثالی از نحوه راه اندازی چندین میزبان در فایل ~/.ssh/config آورده شده است:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_rsa

Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/gitlab_rsa

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile ~/.ssh/bitbucket_rsa
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تولید کلیدهای GPG

اگر کلیدهای GPG را قبلاً تولید و به میزبان راه دور خود اضافه کرده‌اید، می‌توانید رد شده و به عنوان بعدی بروید، در غیر این صورت، می‌توانید زیر را دنبال کنید تا تنظیمات GPG را انجام دهید:

  1. یک ترمینال را باز کنید و دستور زیر را برای ایجاد یک کلید GPG جدید اجرا کنید:

    gpg --full-generate-key
    
  2. دستورات را دنبال کنید تا نام و آدرس ایمیل خود را وارد کنید.

  3. نوع کلید و اندازه کلید را انتخاب کنید. گزینه های پیش فرض معمولا کافی هستند.

  4. تاریخ انقضای کلید خود را تعیین کنید. شما می توانید انتخاب کنید که بدون انقضا یا تاریخ خاصی تعیین کنید.

  5. یک رمز عبور برای کلید خود وارد کنید. این عبارت عبور برای استفاده از کلید برای امضای commit ها لازم است.

  6. پس از تولید کلید، دستور زیر را برای دریافت شناسه کلید اجرا کنید

    gpg --list-secret-keys --keyid-format LONG <your_email>
    
  7. در خروجی، خط sec را شناسایی کرده و شناسه کلید GPG را کپی کنید. بعد از کاراکتر / شروع می شود. در این مثال، شناسه کلید است 4EC9DCE00DD4D021

    sec   rsa4096/4EC9DCE00DD4D021 2023-04-23 [SC]
      0A96E925578EA97AD6B62FA54EC9DCE00DD4D021
    uid                 [ultimate] User <user email>
    ssb   rsa4096/BBF655FD113EEE28 2023-04-23 [E]
    

افزودن کلید GPG به میزبان راه دور

  1. یک ترمینال را باز کنید و دستور زیر را اجرا کنید تا کلید عمومی GPG خود را دریافت کنید

    gpg --armor --export <your_key_id>
    
  2. در وب سایت میزبان کد، به تنظیمات حساب خود بروید و گزینه اضافه کردن یک کلید GPG جدید را پیدا کنید.

  3. کلید عمومی را در قسمت ورودی قرار دهید و کلید را ذخیره کنید.

کلید امضای تعهد شناسایی خودکار

برای تسهیل فرآیند امضای commit ها، می توانید تنظیمات Git خود را طوری پیکربندی کنید که از کلیدهای مختلف برای میزبان های مختلف استفاده کند.

برای انجام این کار، می توانید چندین مورد ایجاد کنید .gitconfig فایل ها و استفاده از includeIf دستورالعملی برای تعیین شرایطی که هر فایل باید تحت آن استفاده شود. به عنوان مثال، شما می توانید یک ایجاد کنید .gitconfig-work فایل برای حساب کاری شما و الف .gitconfig-personal برای حساب شخصی خود فایل کنید و از آن استفاده کنید includeIf بخشنامه مشخص شود که .gitconfig-work فایل باید برای تعهد به مخزن کار شما و .gitconfig-personal فایل باید برای تعهد به مخزن شخصی شما استفاده شود. همچنین می توانید هر فایل gitconfig را طوری پیکربندی کنید که از یک کلید GPG متفاوت برای امضای commit ها استفاده کند.

includeIf یک گزینه پیکربندی در Git است که به شما امکان می دهد فایل های پیکربندی اضافی را بر اساس شرایط خاص اضافه کنید. به عنوان مثال، می توانید یک فایل پیکربندی خاص را بر اساس پیکربندی مخزن که در آن کار می کنید، اضافه کنید.

در اینجا مثالی از نحوه تنظیم چندین فایل gitconfig با includeIf آورده شده است:

  1. برای هر کلید امضایی که می خواهید استفاده کنید، یک فایل gitconfig جداگانه ایجاد کنید. مثلا، ~/.gitconfig-personal و ~/.gitconfig-work.
  2. در اصل شما ~/.gitconfig فایل، موارد زیر را اضافه کنید
# ~/.gitconfig
[includeIf "hasconfig:remote.*.url:git@gitlab.com:**/**"]
    path = .gitconfig-work
[includeIf "hasconfig:remote.*.url:https://gitlab.com/**"]
    path = .gitconfig-work
[includeIf "hasconfig:remote.*.url:git@github.com:**/**"]
    path = .gitconfig-personal
[includeIf "hasconfig:remote.*.url:https://github.com/**"]
    path = .gitconfig-personal
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# ~/.gitconfig-personal
[user]
    name = <YOUR NAME>
    email = <YOUR PERSONAL EMAIL>
    signingkey = <GPG KEY ID FOR PERSONAL GPG>
[commit]
    gpgsign = true
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# ~/.gitconfig-work
[user]
    name = <YOUR NAME>
    email = <YOUR WORK EMAIL>
    signingkey = <GPG KEY ID FOR WORK GPG>
[commit]
    gpgsign = true
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

به‌عنوان یک توسعه‌دهنده، کار با میزبان‌های کد متعدد و امضای تعهدات خود با چندین کلید GPG می‌تواند چالش‌برانگیز باشد. با این حال، با پیکربندی تنظیمات Git و SSH خود برای استفاده از کلیدهای مختلف برای هاست های مختلف، می توانید گردش کار خود را ساده کرده و بهره وری خود را افزایش دهید. با دنبال کردن مراحل ذکر شده در این پست، می توانید به راحتی چندین میزبان کد را مدیریت کنید، commit های خود را با کلید GPG مناسب امضا کنید و از کلید SSH مناسب برای هر میزبان استفاده کنید. این می تواند به شما در صرفه جویی در زمان و جلوگیری از اشتباهات کمک کند و در نهایت شما را به یک توسعه دهنده موثرتر تبدیل کند. خوب چرا امتحانش نکنیم؟ با کمی تنظیمات، می توانید گردش کار خود را ساده کنید و مهارت های توسعه خود را به سطح بعدی ببرید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا