// یادداشت پروژه

Python
Linux
SSH
GitHub

چرا ghssh رو برای جابه‌جایی بین اکانت‌های گیت‌هاب ساختم

معرفی نسخهٔ اول ghssh؛ ابزار خط فرمان پایتون برای لینوکس، با جابه‌جایی بین اکانت‌های SSH گیت‌هاب، بازگشت به تنظیمات قبلی و مدیریت کلیدها با بکاپ و پیش‌نمایش تغییرات.

آرسام سرخوشافزوده‌شده به این بلاگ 3 دقیقه مطالعه
خواندن مطلب
یادداشت پروژه
تصویر اصلی معرفی ghssh v0.1.0؛ دو کلید مربوط به دو اکانت گیت‌هاب، فلش‌های رفت‌وبرگشت و دستورهای switch و switch --back.
در اصل به فارسی در لینکدین منتشر شده است. خواندن پست اصلی در لینکدین ↗(در زبانهٔ جدید باز می‌شود)

یک جابه‌جایی ساده، با کلی ریزه‌کاری

جابه‌جایی بین دو اکانت گیت‌هاب چرا باید این‌قدر اعصاب‌خردکن باشه؟ دقیقاً گیر همین داستان افتاده بودم. یه کلید SSH برای اکانت اصلی‌ام داشتم و می‌خواستم موقتاً با اکانت دوم کار کنم، بعد هم برگردم سراغ قبلی. همین!

ولی باید حواسم به کلیدها، تنظیمات SSH و برگشتن به حالت قبل می‌بود. برای یه رفت‌وبرگشت ساده، زیادی دردسر داشت. آخرش تصمیم گرفتم کار رو برای خودم راحت‌تر کنم؛ نتیجه شد ghssh، یک ابزار خط فرمان با پایتون برای لینوکس.

جابه‌جا شو، کارت رو انجام بده و برگرد

وقتی کلید حساب دوم آماده و کلید عمومی اون روی گیت‌هاب ثبت شده باشه، با switch سراغش می‌رم. بعد از تمام شدن کار هم --back تنظیمات قبلی رو برمی‌گردونه. هر دو کلید سر جاشون می‌مونن.

Shell
ghssh switch github_second
ghssh switch --back

کارهایی که کنار جابه‌جایی لازم می‌شدن

در کنارش، چند قابلیت برای مدیریت کلیدها هم اضافه کردم:

  • ساخت کلید Ed25519 با نام و توضیح دلخواه و امکان کپی کردن کلید عمومی.
  • تعویض کلید فعلی با کلید جدید، همراه با بکاپ و نگه داشتن کلید قبلی.
  • نمایش کلیدهای موجود، کلید تنظیم‌شده برای GitHub و هویت‌های بارگذاری‌شده در ssh-agent.
  • بررسی وضعیت تنظیمات و تست اتصال به GitHub.
  • بکاپ‌گیری و بازیابی کلیدها و تنظیمات مربوط به GitHub.

قبل از اجرا، تغییرات رو ببین

با dry-run می‌شه قبل از اجرا دید قراره چه تغییراتی انجام بشه. حذف انتخابی تنظیمات GitHub یا کلیدهای تحت مدیریت ابزار هم با تأیید کاربر و بررسی اثر انگشت کلید انجام می‌شه.

امکان اضافه کردن کلید عمومی به GitHub با کمک GitHub CLI هم هست، به شرط نصب بودن و ورود به حساب در اون ابزار. این بررسی‌ها و تأییدها بخشی از گردش کارن؛ نمی‌خواستم از دید کاربر پنهان بشن.

یک ابزار کوچک متن‌باز، آمادهٔ بازخورد

نسخهٔ ۰.۱.۰ رو به‌صورت متن‌باز منتشر کردم. نصبش با pipx انجام می‌شه و بعد از اون می‌شه ghssh رو مستقیم از ترمینال اجرا کرد؛ بدون فعال کردن دستی محیط مجازی.

شروعش از کاری بود که خودم رو اذیت می‌کرد. اگه شما هم بین چند اکانت گیت‌هاب رفت‌وآمد دارید، خوشحال می‌شم بدونم کجای این مسیر هنوز دردسر داره. مخزن کد و راهنمای نصب از صفحهٔ پروژه در دسترسن.