Найти Π² Π”Π·Π΅Π½Π΅

πŸ›‘οΈ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ-взрослому: Π·Π°Ρ‰ΠΈΡ‰Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GPG ΠΈ shell-secrets

НавСрняка ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ администратор сталкивался с Π²Π΅Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ хранСния сСкрСтных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния. API-ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ β€” это Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всСгда ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом максимально Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹. На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт β€” shell-secrets, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт бСзопасно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GPG. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ интСрСсныС особСнности Π² Π½Π΅ΠΉ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ. Випичная ситуация: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .env, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² .gitignore. Но достаточно ΠΎΠ΄Π½ΠΎΠΉ ошибки, случайного ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ»ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ доступа ΠΊ систСмС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСкрСты оказались Ρƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ². ИспользованиС GPG-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ шаг Π²ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ случайного раскрытия сСкрСтов. Автор инструмСнта shell-secrets создал простой, Π½ΠΎ Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ бСзопасно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ
ОглавлСниС

НавСрняка ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ администратор сталкивался с Π²Π΅Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ хранСния сСкрСтных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния. API-ΠΊΠ»ΡŽΡ‡ΠΈ, Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ β€” это Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всСгда ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом максимально Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹. На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ инструмСнт β€” shell-secrets, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт бСзопасно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GPG.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ интСрСсныС особСнности Π² Π½Π΅ΠΉ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ.

πŸ”‘ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° нСдостаточно?

Випичная ситуация: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .env, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² .gitignore. Но достаточно ΠΎΠ΄Π½ΠΎΠΉ ошибки, случайного ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ»ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ доступа ΠΊ систСмС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сСкрСты оказались Ρƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ².

ИспользованиС GPG-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ шаг Π²ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ случайного раскрытия сСкрСтов.

πŸš€ Π’ Ρ‡Ρ‘ΠΌ идСя shell-secrets?

Автор инструмСнта shell-secrets создал простой, Π½ΠΎ Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ бСзопасно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния:

πŸ” Π—Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ GPG
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вашим собствСнным GPG-ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

πŸ”‘ ΠœΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ shell всСго ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

πŸ”ƒ ΠœΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½ΠΎΡΡ‚ΡŒ ΠΈ изоляция ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ
Удобная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° (nested logins). Π­Ρ‚ΠΎ позволяСт быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

πŸ§‘β€πŸ’» Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ shell-secrets (с тСхничСскими подробностями)

Π’ΠΎΡ‚ краткая инструкция ΠΏΠΎ настройкС инструмСнта:

βš™οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Π‘Π½Π°Ρ‡Π°Π»Π° ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн ΠΈ настроСн GPG. Π—Π°Ρ‚Π΅ΠΌ создайтС ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ сСкрСты:

mkdir -p ~/.shell-secrets

πŸ“ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° gpg:

gpg --encrypt -r ваш-email@example.com --armor --output ~/.shell-secrets/myapp.gpg
export API_KEY=ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉΠΊΠ»ΡŽΡ‡123
export DB_PASS=ΡΡƒΠΏΠ΅Ρ€ΠΏΠ°Ρ€ΠΎΠ»ΡŒ456
...
# Ctrl+D для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°

πŸ“₯ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ использованиС

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ shell-скрипт Π² ваш основной ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ (~/.bashrc ΠΈΠ»ΠΈ ~/.zshrc):

source /path/to/shell-secrets.sh

ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСкрСты ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ login myapp
myapp $

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ создаётся Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄-shell, ΠΊΡƒΠ΄Π° автоматичСски ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

πŸ”„ Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ окруТСния (Nested Logins)

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ особСнно ΡƒΠ΄ΠΎΠ±Π½ΠΎ для быстрого ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкстов:

$ login myapp
myapp $ login another_project
myapp another_project $

β›” Π’Ρ‹Ρ…ΠΎΠ΄

Π’Ρ‹Ρ…ΠΎΠ΄ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ logout ΠΈΠ»ΠΈ просто ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ сочСтания клавиш Ctrl+D.

πŸ€” ΠœΠΎΡ‘ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ± инструмСнтС

На ΠΌΠΎΠΉ взгляд, shell-secrets β€” ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ нСбольшиС ΠΈ простыС инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Он идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΈ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, Π³Π΄Π΅ трСбуСтся ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΈ бСзопасноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСкрСтов Π±Π΅Π· развёртывания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² сСкрСтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Hashicorp Vault ΠΈΠ»ΠΈ AWS Secrets Manager.

Однако стоит ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΠΈ ограничСния:

⚠️ Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ настроСнного GPG. Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ придётся ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. Для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π»ΡƒΡ‡ΡˆΠ΅ всё ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС систСмы управлСния сСкрСтами.

⚠️ Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ доступны Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ shell, поэтому систСма Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ сСкрСтов, Π½ΠΎ Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… процСссов, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° практичСских Π·Π°Π΄Π°Ρ‡ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ компромисс ΠΌΠ΅ΠΆΠ΄Ρƒ удобством ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ.

πŸ“Œ Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ $SECRET_LOGIN?

Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ инструмСнта прСдусмотрСл ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΌΠ΅Π»ΠΎΡ‡ΡŒ: пСрСмСнная окруТСния $SECRET_LOGIN Ρ…Ρ€Π°Π½ΠΈΡ‚ список Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π»ΠΎΠ³ΠΈΠ½ΠΎΠ², благодаря Ρ‡Π΅ΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой shell-ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ (PS1) ΠΈ всСгда Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅:

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² свой ~/.bashrc:

export PS1="\u@\h \[\e[32m\]\$SECRET_LOGIN\[\e[0m\] $ "

Π­Ρ‚ΠΎ создаст ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π²ΠΈΠ΄Π°:

username@hostname myapp $

Π’Π°ΠΊΠΎΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ окруТСния ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… срСдах ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

πŸ“š ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки ΠΈ рСсурсы

πŸ”— ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ shell-secrets
πŸ”—
ДокумСнтация ΠΏΠΎ GPG
πŸ”—
GPG: Best Practices

🎯 Π’Ρ‹Π²ΠΎΠ΄:
shell-secrets β€” элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для повсСднСвного хранСния ΠΈ использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ простоту bash-скрипта с Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ GPG-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. ВрСмя ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ plaintext-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с сСкрСтами бСзопасно!

πŸ“ Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ новости: shell-secrets – GPG-encrypted environment variables