Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!19.02.2023
Про ключі в 1Password, Git та ssh-agent
Продовження історії з ключами в 1Password.
- Про використання ключів AWS з іншими програмами. Для підставлення ключів у змінні оточення є окремий інструмент - op run. Це працює з будь-якими скриптами та з будь-якими ключами. Достатньо прописати шлях до ключа в змінну оточення (я роблю це через direnv), а потім загорнути виклик скрипту в
op run
:
# .envrc
export AWS_ACCESS_KEY_ID="op://My Vault/AWS Access Key/access key id"
export AWS_SECRET_ACCESS_KEY="op://My Vault/AWS Access Key/secret access key"
# виклик
op run -- terraform apply
- Про використання 1Password для ключів SSH/Git. Це, просто кажучи, незручно. Але головна проблема для мене — це те, що операції з Git потребують відімкненого сховища 1Password. А з Git я працюю постійно. Дуже не сподобалось мати завжди відімкнене сховище ключів. До того ж агент авторизації просив схвалити кожну операцію. Тож повернувся до звичайного ssh-agent. Це так само безпечно, як і 1Password, бо ключ з
ssh-agent
можна отримати тільки через дамп памʼяті, а ключ на диску зберігається в зашифрованому вигляді.
Можна знайти в інтернеті згадки про використання ssh-agent
з macOS Keychain. Насправді у Keychain зберігатиметься тільки парольна фраза, а не весь ключ. Ключ так само залишається в на диску. Тому я не впевнений, що це так потрібно. (Сподіваюсь, очевидно, що ключі обовʼязково мають бути зашифровані парольною фразою.)
Додатково зʼясував, що підписування змін в Git теж можна робити без 1Password, це функція звичайного ssh-agent
:
# ~/.gitconfig
[user]
signingkey = (ssh-ed25519 публічний-ключ...)
[gpg]
format = ssh