اگر با سرورهای زیادی سر و کله میزنید که هر کدوم از اونها هم برنامههای زیادی رو در دل خودشون اجرا میکنن مثل دیتابیس و البته استفاده از پسورد مشترک و پسورد با الگوی خاص هم غدقن باشه و بخواید کاری کنید که هر کاربر به پسورد خودش دسترسی داشته باشه و حتی برای نگهداری پسوردهای شخصیتون میتونید از برنامهی ترمینالی زیبا و خوشدست pass استفاده کنید.
اول از همه آخرین نسخه برنامه یعنی ۱.۶.۳ رو نصب داشته باشید. اگه اوبونتو ۱۴.۰۴ دارید برنامه داخل مخزن نسخه ۱.۴ رو داره که برای کار ما یه نموره قدیمیه.
این برنامه برای رمز کردن پسوردهای ذخیره شده روی کامپیوتر از برنامهی gpg استفاده میکنه و برای اشتراک پسوردها از git بهره میبره.
با برنامه gpg میشه کلید ساخت و با کلیدهای ساخته شده به راحتی میشه هر فایلی رو رمز کرد.
سیاست من برای ساخت کلید اینه. یک کلید برای دسترسی به همه پسوردهای داخلی که خودم و رییس بهش دسترسی داریم و چند کلید هم به تعداد گروههای کاری داخل شرکت. مثلا گروه برنامهنویسی که قرار نیست به همه سرورها و دیتابیسهای درون شرکت دسترسی داشته باشه یک کلید اختصاصی به اسم Dev دارن.
کلیدی میتونه اختصاصی برای استفادهی یک شخص هم ساخته بشه و دسترسی اون فرد به فضاهایی که امکانش رو داره فراهم کنه مثل لیدر برنامهنویسها که قطعا دسترسیهای بیشتری رو نسبت به یک آدم تازه وارد خواهد داشت.
برای ساخت کلید از دستور زیر باید استفاده کنید.
1 |
gpg —gen–key |
با زدن این دستور چند گزینه جلوتون سبز میشه که همون شمارهی اول گزینهی دلخواه ماست.
مرحلهی بعد باید طول کلید رو مشخص کنید که همیشه طولانیترین حالت رو انتخاب کنید (۴۰۹۶ بیت)
و مرحلهی بعد به دلخواه خودتون میتونید زمان انقضای کلید رو هم مشخص کنید. در صورتیکه میخواید تا ابد با یه کلید کار کنید عدد صفر رو تایپ کنید و اینتر رو بزنید. کلیدهایی رو که اختصاصی برای یک شخص میسازید بهتره سالیانه باشه.
توی مراحل بعدی باید یک اسم و نشون برای کلیدتون بذارید که بهتره واقعی باشه و یک راه ارجاع به کلیدها، ایمیلیه که تو همین بخش مشخص میکنید. مثلا برای گروه برنامهنویسی رو [email protected] بذارید و برای گروهی که دسترسی به همهی پسوردها داره [email protected] گزینهی مناسبیه.
مرحلهی بعد باید یک پسورد برای ذخیره کردن خود کلید به اسم passphrase رو وارد کنید تا وقتی در حال استفاده از سیستم عامل هستید، کلید در یک فایل پلین تکست به صورت معمولی ذخیره نشه و با این پسورد رمز شده بمونه. در صورت فراموشی این پسورد، قید کل پسوردها و فایلهایی که با این کلید رمز شدن رو بزنید ;)
برنامه در آخر برای تولید کلید ازتون میخواد که با سیستم عامل فعالیت کنید تا بتونه به صورت تصادفی کلید رو بسازه. توی این مواقع میتونید یک ترمینال جدید باز کنید و داخلش کامند زیر رو اجرا کنید!
1 |
dd if=/dev/zero of=/dev/null conv=fdatasync |
اگه دیدید این روش هم کارساز نیست، مرورگرتون رو هعی باز و بسته کنید و دکمههای کیبرد رو به صورت تصادفی بزنید
برای مشاهدهی کلید ساخته شده از این کامند استفاده کنید.
1 |
gpg —list–keys |
میرسیم به بخش زیبای کار و اون ساخت فضایی برای نگهداری پسوردهاست (با استفاده از کلیدهایی که ساختیم)! برای اینکار از دستور زیر استفاده میکنیم.
1 |
pass init gpg–id |
gpg-id در اینجا همون ایمیل اختصاصی کلید میشه که مرحلهی قبل ایجاد کردید.
با زدن این دستور فولدر مخفی .password-store در پوشهی خونگیتون به همراه یک فایل به اسم gpg-id ساخته میشه. فایل gpg-id به برنامه pass میگه که پسوردهای ساخته شده با کدوم کلید رمز بشن.
برای ذخیرهی پسورد جدید از دستور زیر استفاده کنید.
1 |
pass insert Sys/172.20.23.2/mysql/root |
که میشه پسورد روت دیتابیس سرور ۱۷۲.۲۰.۲۳.۲ و با زدنش برنامه ۲ بار ازتون پسورد رو میپرسه.
پسوردی که وارد میکنید در فولدر زیر به صورت رمز شده ذخیره میشه.
1 |
~/.password–store/Sys/172.20.23.2/mysql |
فایلی که داخل این فولدر موجوده به اسم root.gpg رو اگر با یک ادیتور باز کنید یک سری نوشتهی در هم و برهم خواهید دید که بدون دسترسی به کلید باز کردنش کار خیلی خیلی سختیه و تا حدی نشدنیه!
و برای همین دیگه نگرانی از شیر کردن این فضا با دیگران نخواهید داشت. به راحتی میشه این فضا رو با استفاده از git با دیگران به اشتراک گذاشت بدون اینکه نگران باشید دیگران پسوردها رو بخونن. برای اینکار خود pass دستورهایی مشابه دستورهای git رو براتون ایجاد کرده.
برای استفادهی شخصی هم کافیه محتویات پوشهی password-store رو به فضای کلود رایگانی مثل دراپباکس انتقال بدید که خیالتون از بابت دسترسی دائمی به پسوردها و کلیدها راحت باشه.
1 2 3 |
pass git git–command–args... pass git init pass git remote add origin kexec.com:pass–store |
حالا فرض کنید میخواید برای گروه Dev پسوردهایی رو بسازید که با کلید خودشون رمز شده باشن! برای اینکار به برنامه pass میگیم که فولدر Dev رو ایجاد کنه اینبار با کلید مد نظرمون..
1 |
pass –p Dev gpg–id |
روش دستی هم اینه که داخل پوشهی password-store فولدر Dev رو ایجاد کنیم و داخلش فایل مخفی gpg-id رو ایجاد کنیم. محتوای فایل هم ایمیلی هست که به کلید اختصاص دادیم، [email protected] . برنامهی pass تمام پسوردهایی که زیر مجموعهی Dev باشن رو به صورت خودکار با کلید جدید ایجاد میکنه.
برای دیدن لیست پسوردهایی که ذخیره دارید کافیه دستور pass رو بزنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
zx2c4@laptop ~ $ pass Password Store ├── Business │ ├── some–silly–business–site.com │ └── another–business–site.net ├── Email │ ├── donenfeld.com │ └── zx2c4.com └── France ├── bank ├── freebox └── mobilephone |
برای نمایش پسورد باید کامند زیر رو بزنید و passphrase خودتون رو هم به برنامه بدید تا پسورد رو مشاهده کنید. passphrase رو هم میشه کاری کرد که تا زمانی که لاگین هستید معتبر باشه و هر بار برنامه ازتون اون رو نپرسه. حتی میشه کاری کرد که passphrase پسورد لاگین به سیستم بشه که با جستجو میتونید اون رو پیدا کنید :)
1 2 |
zx2c4@laptop ~ $ pass Email/zx2c4.com sup3rh4x3rizmynam3 |
برای تولید پسورد تصادفی ۱۵ حرفی از دستور زیر استفاده کنید.
1 |
pass generate Email/jasondonenfeld.com 15 |
برای پاک کردن یک پسورد هم از این دستور استفاده کنید.
1 |
pass remove Business/cheese–whiz–factory |
یا به صورت عادی برید فایل و فولدرش رو پاک کنید.