۲۹ مهر ۱۴۰۵ nmattia.com ۳ دقیقه مطالعه

آموزش استفاده از Secure Enclave و Touch ID برای کلیدهای SSH در مک

آموزش استفاده از Secure Enclave و Touch ID برای کلیدهای SSH در مک — Setting Up SSH Keys on macOS with Touch ID

خلاصه

این مقاله نشان می‌دهد چگونه می‌توان با استفاده از امکانات سخت‌افزاری مک مانند Secure Enclave و Touch ID، کلیدهای SSH امن و غیرقابل استخراج ساخت. این روش امنیت را افزایش داده و نیاز به فایل‌های کلید سنتی را از بین می‌برد، هرچند محدودیت‌هایی نیز در زمینه پشتیبان‌گیری دارد.

استفاده از کلیدهای SSH سنتی در مسیر دایرکتوری ~/.ssh سال‌هاست که استاندارد توسعه‌دهندگان است، اما این روش مشکلاتی مثل خطر افشای فایل خصوصی یا حذف تصادفی دارد. در سیستم‌عامل macOS، سخت‌افزاری به نام Secure Enclave وجود دارد که هویت‌های رمزنگاری را به‌صورت ایمن ذخیره می‌کند. با استفاده از این قابلیت، کلیدهای SSH با اثر انگشت شما (Touch ID) محافظت می‌شوند و هیچ‌گاه از تراشه خارج نمی‌شوند.

چرا استفاده از Secure Enclave برای SSH؟

  • امنیت بالا: کلید خصوصی هرگز استخراج نمی‌شود و امکان سرقت آن عملاً وجود ندارد.
  • احراز هویت زیستی: هر زمان که از SSH یا git push استفاده کنید، سیستم از طریق Touch ID تأییدیه می‌خواهد.
  • عدم نیاز به فایل: هیچ فایل کلیدی روی دیسک ذخیره نمی‌شود که نگران پاک شدن یا لو رفتن آن باشید.

مراحل راه‌اندازی سریع

برای ساخت و استفاده از این کلیدها نیازی به ابزارهای جانبی پیچیده نیست و کار با چند دستور ساده انجام می‌شود.

۱. ساخت هویت در Secure Enclave

برای ساخت یک هویت جدید با پشتیبانی از Touch ID، دستور زیر را اجرا کنید:

sc_auth create-ctk-identity -l ssh-key -k p-256-ne -t bio

۲. معرفی کلید به SSH

کلاینت SSH به‌طور پیش‌فرض نحوه کار با این هویت‌ها را نمی‌داند. کتابخانه ssh-keychain.dylib به عنوان یک لایه واسط عمل می‌کند:

ssh-add -K -S /usr/lib/ssh-keychain.dylib

توجه داشته باشید که پس از هر بار ریبوت شدن سیستم، باید این دستور را مجدداً اجرا کنید تا SSH هویت را بشناسد.

۳. دریافت کلید عمومی برای سرورها

برای اضافه کردن کلید به سرویس‌هایی مثل GitHub، دستور زیر کلید عمومی را نمایش می‌دهد:

ssh-add -L

خطی که با sk-ecdsa-sha2-nistp256... شروع می‌شود همان کلیدی است که باید در گیت‌هاب ثبت کنید.

نگاهی به زیر کاپوت

ابزار sc_auth (که مخفف Smart Card Authentication است) هویت‌های CryptoTokenKit یا همان CTK را مدیریت می‌کند. پارامتر -ne در نوع کلید (p-256-ne) مخفف Non-Extractable است؛ یعنی کلید توسط خود انکِلاو تولید شده و غیرقابل استخراج است. وقتی دستوری مثل git push اجرا می‌شود، پروتکل SSH از طریق کتابخانه ssh-keychain.dylib با انکِلاو ارتباط برقرار کرده و پس از تأیید Touch ID، امضای دیجیتال لازم را تولید می‌کند.

دیدگاه جامعه توسعه‌دهندگان (Hacker News)

بحث‌های شکل‌گرفته در هکرنیوز پیرامون این روش نکات مهمی را مطرح می‌کند:

  • مسئله پشتیبان‌گیری: از آنجا که کلیدها درون Secure Enclave حبس هستند، اگر لپ‌تاپ شما بسوزد یا خراب شود، کلید را از دست خواهید داد. همان‌طور که یکی از کاربران اشاره کرده، این روش شما را «یک فنجان چای ریخته‌شده روی دستگاه» تا از دست رفتن کلیدها فاصله می‌دهد.
  • محدودیت سخت‌افزاری: برخی کاربران به این نکته اشاره کرده‌اند که این روش کلیدهای شما را به سخت‌افزار خاصی گره می‌زند و ممکن است در برخی جریان‌های کاری (Workflow) پیچیده محدودکننده باشد.
  • ابزارهای جایگزین: ابزارهایی مانند Secretive یا ابزارهای مدیریت رمز عبور مانند 1Password نیز راه‌حل‌های مشابهی برای مدیریت کلیدهای SSH ارائه می‌دهند.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.