عبارت عبور کلید SSH از فایل محافظت میکند، نه از مسیر
عبارت عبور فایل کلید خصوصی را رمزنگاری میکند؛ هویت را باطل نمیکند و مسیر را ایمن نمیسازد. ذخیرهسازی جداگانه، عمر عامل و استفاده بدون نظارت.
یک دیسک پشتیبان از یک لپتاپ قدیمی هنوز یک کلید خصوصی SSH دارد، و کسی میپرسد آیا VPN از آن محافظت میکند. نمیکند، و هرگز نکرده است. VPN از مسیری میان دو شبکه محافظت میکند؛ عبارت عبور از فایل محافظت میکند؛ عامل از یک نشست در حال اجرا محافظت میکند. سه سازوکار متفاوت، سه حالت خرابی متفاوت، و یک نسخه دزدیدهشده فقط به دو مورد اول اهمیت میدهد.
عبارت عبور به فایل تعلق دارد
عبارت عبور کلید SSH مواد کلید خصوصی را در حالت سکون رمزنگاری میکند. این رمز حساب کاربری که به سرور فرستاده میشود نیست، و اعتبارنامهای که برای پیوستن به VPN استفاده میشود هم نیست. اشتباه گرفتن این دو به تغییراتی میانجامد که در معرض بودن را برطرف نمیکند.
راهنمای ssh-keygen در OpenSSH به مدیریت عبارتهای عبور میپردازد، از جمله کلید -p که عبارت عبور تازهای روی کلیدی که از پیش وجود دارد تنظیم میکند.
برای کلید موجود، شکل فرمان ساده است و فایل را بازنویسی میکند:
ssh-keygen -p -f ~/.ssh/id_ed25519
از فرایند نگهداری و بازیابی تأییدشده مالک کلید استفاده کنید، چون این یک نوشتن است نه یک بازرسی. فایل خصوصی را منتشر نکنید و عبارت عبور واقعی را روی خط فرمان مشترک نگذارید. تغییر عبارت عبور نسخهای را که پیشتر گرفته شده دوباره رمزنگاری نمیکند. محل نسخه قدیمی را در تیکت ثبت کنید تا مالک بتواند تصمیم بگیرد آن را نابود کند یا نه.
نسخهای عمری بیش از لپتاپ و تونل دارد
پس از آنکه فایل کلید کپی شد، اتصال زنده VPN لپتاپ دیگر چیزی درباره آن نمیگوید. آنچه مهم است میزان محافظت از خود فایل است، و اینکه کدام سرورها هنوز به کلید عمومی متناظر اعتماد دارند.
تغییر عبارت عبور روی فایل کنونی به نسخه دست نمیزند و همان کلید عمومی را از authorized_keys روی سرور حذف نمیکند. باطل کردن و رمزنگاری دوباره دو اقدام جداگانهاند.
پس کلید خصوصی نشتکرده را یک رخداد هویتی بدانید، نه رخداد شبکهای. کلید پذیرفتهشده را از طریق سرورها و فرایند ثبتنامی که مالک آن است حذف یا جایگزین کنید. توقف VPN یک مسیر را در یک لحظه محدود میکند؛ این باطل کردن نیست.
باز کردن قفل راز را به یک عامل منتقل میکند
عامل هویتهای رمزگشاییشده را برای احراز هویت بعدی نگه میدارد، تا کاربر در هر اتصال عبارت عبور را دوباره تایپ نکند. این یک ویژگی سهولت استفاده با مرز امنیتی خودش است.
ssh-agent میتواند با گزینه -t خود محدود کند که یک هویت چه مدت بارگذاریشده بماند، و تنظیمی برای یک هویت میتواند از آن حد فراتر رود. سیاست را برای عاملی که واقعاً اجرا میکنید انتخاب کنید، نه با فرض اینکه قطع VPN هر کلید بارگذاریشده را فراموش میکند.
فرایندی که پس از باز شدن قفل کلید در معرض نفوذ قرار میگیرد، مشکلی متفاوت از یک فایل رمزنگاریشده دزدیدهشده است. ارسال عامل به میزبان دیگر توانایی احراز هویت را بدون کپی کردن فایل کلید واگذار میکند، پس آن را فقط برای نیاز تأییدشده فعال کنید.
فهرست کنید عامل در حال حاضر چه چیزی در اختیار دارد، پیش و پس از یک تغییر:
ssh-add -l
کارهای بدون نظارت برنامه خودشان را لازم دارند
یک کار زمانبندیشده نمیتواند به یک درخواست پاسخ دهد. به ترتیبی تأییدشده برای اعتبارنامه ماشین نیاز دارد، و نگه داشتن راز باز کردن قفل در همان پوشهای که کلید است و برای همان حساب خواندنی باشد، مرز دومی ایجاد نمیکند.
با مالک سرویس درباره تحویل پشتیبانیشده رازها یا کارکرد مبتنی بر سختافزار همکاری کنید و تمدید، خرابی و بازیابی را پوشش دهید. خواستن یک انسان پشت صفحهکلید، ظاهر خرابی را در مقایسه با میزبانی که بدون مراقبت کسی بالا میآید تغییر میدهد.
بررسی هویت میزبان در سرور و محدودیتهای حساب آن را هم نگه دارید. مسیر VPN راهی خصوصی به شما میدهد؛ ثابت نمیکند که هر شنونده SSH که به آن میرسید همان میزبان مورد نظر است. شنونده و اثر انگشت کلید میزبان را در همان فهرستی که خود کلید هست ثبت کنید.
مرزها را جداگانه بررسی کنید
هر مرز را با پرسش خودش بیازمایید. آیا فایل بدون عبارت عبور باز میشود؟ آیا عامل پس از قطع اتصال هنوز هویت را نگه میدارد؟ آیا سرور هنوز کلید عمومی را میپذیرد؟
دو فرمان به پرسش اول و سوم پاسخ میدهند:
ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]
حفاظت فایل، استفاده مجاز از کلید و حذف در سمت سرور را بهعنوان سه ردیف جداگانه ثبت کنید. تونل، عبارت عبور و عامل هر یک بخش متفاوتی از رابطه را میپایند، و فقط یکی از آنها درباره شبکه است.