Adds configuration helper to setup yubikey for ssh and gpg#71
Adds configuration helper to setup yubikey for ssh and gpg#71rolandboon merged 2 commits intomainfrom
Conversation
5d86dcd to
6256d7a
Compare
6256d7a to
4d13b5b
Compare
|
Heb het script uitgebreid met het signen van de developer key met een 10KB root CA. Dan kunnen we in de toekomst deze root CA ook gebruiken als ultimate trust voor het verifieren van manjikaze commits voor updates. |
olafsl
left a comment
There was a problem hiding this comment.
Ik vind het erg lastig om te reviewen, want het is echt te veel bash om goed overzicht te krijgen en alles te checken op wat er gebeurt.
Zoals eerder al besproken: Ik zou aanpassen zodat de pin ergens op de computer van de gebruiker in een bestand moet staan. Ik denk dat de daadwerkelijke pincode moeten invullen bijzonder onpraktisch is en weinig toevoegt. Als het niet een technische requirement was geweest zou ik nooit hebben gedacht "wat dit nodig heeft is pin-verificatie", dus lijkt me de pin random genereren en ergens opslaan op je computer het meest handig.
| if [[ "$t_sig" == "On" && "$t_aut" == "On" && "$t_dec" == "On" ]]; then | ||
| check_pass "Touch: sig=on aut=on dec=on" |
There was a problem hiding this comment.
Was de policy niet cached ipv on?
| ⚠ For maximum security, keys should be generated on an | ||
| air-gapped system. This script trades some security for | ||
| convenience by generating on your daily machine." \ | ||
| --affirmative "Yes" --negative "No" --default=false && echo "true" || echo "false") |
There was a problem hiding this comment.
DrDuh says so: https://drduh.github.io/YubiKey-Guide/#prepare-environment
|
|
||
| # Download the CA key via Bitwarden Send | ||
| status "Downloading CA key from Bitwarden Send..." | ||
| local receive_cmd="bw send receive \"$send_url\" --output \"$ca_private_key\"" |
There was a problem hiding this comment.
Ik geloof niet dat je helemaal op het begin hebt gecheckt of iemand zn bitwarden op de goeie manier opgezet heeft. Werkt dit altijd? Moet je hiervoor ingelogd zijn, of werkt dit voor iemand anders ook? Als het account-gebonden is maar wel de bitwarden CLI vereist moet misschien vooraf gevraagd worden of dat goed ingesteld staat.
There was a problem hiding this comment.
De CLI is als het goed is geinstalleerd: https://github.com/10KB/manjikaze/blob/main/app/installations/essential/bitwarden-cli.sh
Om een send-link te ontvangen is verder geen configuratie nodig. Voor het backuppen van je keys wel, maar daar wordt dus gecheckt of je authenticated bent en zo niet dan gaat ie dat dan doen. Die auth-flow doorloopt gewoon een interactive username+password+totp flow.
Vrijwel volledig gebaseerd op dit werk: https://drduh.github.io/YubiKey-Guide/
Alleen voor "unattended" overdracht van de keys naar device moest ik een beetje creatief aan de slag. De default pinentry opties kreeg ik op geen enkele manier non-interactive werkend. Daarom stellen we dan tijdelijk tijdens de configuratie een eigen pinentry script in (https://github.com/10KB/manjikaze/blob/feature/yubikey-ssh-gpg/app/security/yubikey/yubikey-setup-gpg.sh#L281). Die werkt heel betrouwbaar non-interactive 😄
Documentatie van wat hier allemaal gebeurd heb ik ook toegevoegd: https://github.com/10KB/manjikaze/blob/feature/yubikey-ssh-gpg/docs/security/yubikey-gpg-ssh.md
Ben benieuwd of die GUI pinentry ook redelijk werkt op Hyprland. Heb me laten vertellen dat pinentry-gtk visueel iets beter zou moeten passen dan pinentry-gnome3 (wat ook een gtk gui is), dus daar default ik alle niet-gnome desktop envs naar.