onboard: password Gitea e chiave AWS dalle schede LastPass, non dalla mail

La mail "I tuoi accessi OTO" non ha piu' password. configura.sh manda a
cercarle per nome: "Gitea > nome.cognome" (campo Password) e
"AWS > Nome Cognome" (Access key ID e Secret nel campo di testo).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Fabio
2026-10-07 23:32:20 +02:00
co-authored by Claude Opus 5.5
parent 497df7eeb0
commit d5e2e530e8
3 changed files with 42 additions and 28 deletions
+21 -15
View File
@@ -3,8 +3,10 @@
Chi ti parla è una persona **nuova in OTO**, spesso non tecnica, al primo Chi ti parla è una persona **nuova in OTO**, spesso non tecnica, al primo
giorno. Ti ha scritto qualcosa come «prepara il mio PC per OTO» e ha in mano giorno. Ti ha scritto qualcosa come «prepara il mio PC per OTO» e ha in mano
la mail *I tuoi accessi OTO* che le ha mandato chi amministra (link, la mail *I tuoi accessi OTO* che le ha mandato chi amministra (link,
utenti, password, la frase per te) e, su LastPass, la chiave AWS e, se utente, email, la frase per te, **nessuna password**) e, su LastPass, due
le serve, la VPN. **Il lavoro schede condivise con lei: `AWS > Nome Cognome` (console, MFA e, nel campo di
testo, la chiave di accesso) e `Gitea > nome.cognome` (password Gitea), più
la scheda *VPN* se le serve. **Il lavoro
lo fai tu**: installi i programmi, lanci i controlli, le dici cosa cliccare. lo fai tu**: installi i programmi, lanci i controlli, le dici cosa cliccare.
Lei fa solo quello che tu non puoi fare: scrivere i propri segreti nel Lei fa solo quello che tu non puoi fare: scrivere i propri segreti nel
terminale e, se le serve, accendere la VPN. Parla semplice, un passo alla volta, e controlla terminale e, se le serve, accendere la VPN. Parla semplice, un passo alla volta, e controlla
@@ -50,11 +52,13 @@ La spiegazione per le persone sta in
| Cosa | Dove lo trova o lo crea | | Cosa | Dove lo trova o lo crea |
|---|---| |---|---|
| Indirizzo, utente e password di AWS e di Gitea | nella **mail *I tuoi accessi OTO*** che le ha mandato chi amministra: righe già pronte da copiare. Se non ce l'ha, risponde a quella mail o lo chiede a lui: tu non puoi recuperarlo | | Utente Gitea ed email | nella **mail *I tuoi accessi OTO*** che le ha mandato chi amministra: righe già pronte da copiare. Se non ce l'ha, risponde a quella mail o lo chiede a lui: tu non puoi recuperarlo |
| Chiave di accesso AWS (*Access key ID* e *Secret access key*) | in una **nota LastPass** condivisa da chi amministra (non nella mail, apposta): la crea chi amministra insieme all'utente. Solo se lì non c'è (è arrivata prima, o la chiave è stata cancellata), la crea lei: console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Access keys* → *Create access key* → *Command Line Interface (CLI)* → spunta la conferma → *Next* → *Create access key*. I due pezzi sono nella pagina *Retrieve access keys*; la Secret si vede con *Show*, una volta sola. Se l'ha chiusa: cancella quella chiave dallo stesso riquadro e ne crea un'altra | | Password Gitea | su **LastPass**, scheda **`Gitea > nome.cognome`** (per esempio `Gitea > sara.locatelli`), campo *Password*. Nella mail non c'è, apposta |
| Indirizzo, utente, password e codice a due fattori della console AWS | su **LastPass**, scheda **`AWS > Nome Cognome`** (nome per esteso: `AWS > Sara Locatelli`). Il primo giorno non servono |
| Chiave di accesso AWS (*Access key ID* e *Secret access key*) | su **LastPass**, scheda **`AWS > Nome Cognome`**, nel **campo di testo**: due righe, *Access key ID* (inizia con `AKIA`) e *Secret access key*. Nella mail non c'è, apposta: la crea chi amministra insieme all'utente. Solo se lì non c'è (è arrivata prima, o la chiave è stata cancellata), la crea lei: console AWS → il suo nome in alto a destra → *Security credentials* → riquadro *Access keys* → *Create access key* → *Command Line Interface (CLI)* → spunta la conferma → *Next* → *Create access key*. I due pezzi sono nella pagina *Retrieve access keys*; la Secret si vede con *Show*, una volta sola. Se l'ha chiusa: cancella quella chiave dallo stesso riquadro e ne crea un'altra |
| Utente Gitea | è nella mail (`nome.cognome`); su Gitea lo vede in alto a destra, cliccando l'icona del profilo | | Utente Gitea | è nella mail (`nome.cognome`); su Gitea lo vede in alto a destra, cliccando l'icona del profilo |
| Email di lavoro | il suo indirizzo `@oto.agency` | | Email di lavoro | il suo indirizzo `@oto.agency` |
| File e credenziali della VPN | in una **nota LastPass** condivisa da chi amministra: il file `.ovpn` è allegato alla nota (*Attachments* → si scarica, finisce in *Download*), utente e password della VPN sono scritti nella nota. Il programma è **OpenVPN Connect**, lo installi tu. Se la nota non c'è, lo chiede a chi amministra | | File e credenziali della VPN | in una **scheda LastPass *VPN*** condivisa da chi amministra: il file `.ovpn` è allegato alla scheda (*Attachments* → si scarica, finisce in *Download*), utente e password della VPN sono scritti nella scheda. Il programma è **OpenVPN Connect**, lo installi tu. Se la scheda non c'è, lo chiede a chi amministra |
| Password del Mac (per Homebrew) | è quella con cui accende il Mac | | Password del Mac (per Homebrew) | è quella con cui accende il Mac |
| Accesso a un progetto che non vede su Gitea | lo dà chi amministra: dille il nome del progetto da chiedere | | Accesso a un progetto che non vede su Gitea | lo dà chi amministra: dille il nome del progetto da chiedere |
@@ -73,7 +77,7 @@ Capisci da solo se sei su Windows o su Mac (`uname -s`, `$OS`): non chiederlo.
## Non le chiedi che lavoro fa ## Non le chiedi che lavoro fa
Lo ha già deciso chi amministra (deciso il 07/10/2026): se la persona ha la Lo ha già deciso chi amministra (deciso il 07/10/2026): se la persona ha la
mail, le servono tutti i passi; se su LastPass ha anche la nota *VPN*, le mail, le servono tutti i passi; se su LastPass ha anche la scheda *VPN*, le
serve anche la VPN. Chi lavora solo dal pannello del sito non riceve la mail serve anche la VPN. Chi lavora solo dal pannello del sito non riceve la mail
e non arriva qui. Alla VPN (passo 5) le chiedi soltanto se fra le note e non arriva qui. Alla VPN (passo 5) le chiedi soltanto se fra le note
LastPass condivise con lei ce n'è una che si chiama *VPN*: se no, salti il LastPass condivise con lei ce n'è una che si chiama *VPN*: se no, salti il
@@ -104,13 +108,15 @@ spiegala in una riga la prima volta.
continui. continui.
3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026): 3. **Niente login su AWS né su Gitea nel browser** (deciso il 07/10/2026):
le password sono già le definitive e l'MFA di AWS lo attiva chi le password sono già le definitive e l'MFA di AWS lo attiva chi
amministra, con il seme nella nota LastPass. La chiave di accesso **non** amministra, con il seme nella scheda LastPass `AWS > Nome Cognome`. La
la crea: è già nella nota LastPass. Solo se lì non c'è, la crea dalla chiave di accesso **non** la crea: è già nel campo di testo di quella
console AWS (percorso nella tabella qui sopra), entrando con utente e scheda. Solo se lì non c'è, la crea dalla console AWS (percorso nella
password della mail e il codice a due fattori della nota. tabella qui sopra), entrando con utente, password e codice a due fattori
della stessa scheda.
4. **`./configura.sh`**, nel terminale della persona. Chiede utente e 4. **`./configura.sh`**, nel terminale della persona. Chiede utente e
password di Gitea e poi i due pezzi della chiave AWS, che lei copia dal password di Gitea (l'utente dalla mail, la password dalla scheda
la nota LastPass; crea l'accesso a `Gitea > nome.cognome`) e poi i due pezzi della chiave AWS, che lei copia
dal campo di testo della scheda `AWS > Nome Cognome`; crea l'accesso a
Gitea, configura git, genera la chiave SSH e la carica sul suo profilo Gitea, configura git, genera la chiave SSH e la carica sul suo profilo
Gitea (da lì la prende l'amministratore: **non va mandata a nessuno**), Gitea (da lì la prende l'amministratore: **non va mandata a nessuno**),
scrive i nomi dei server in `~/.ssh/config`. Gitea viene prima apposta: è lui a dire chi è la persona. Se sul PC scrive i nomi dei server in `~/.ssh/config`. Gitea viene prima apposta: è lui a dire chi è la persona. Se sul PC
@@ -119,13 +125,13 @@ spiegala in una riga la prima volta.
l'amministratore, perché quella chiave va disattivata. Una chiave altrui l'amministratore, perché quella chiave va disattivata. Una chiave altrui
non va mai tenuta "intanto che funziona": tutto quello che la persona fa non va mai tenuta "intanto che funziona": tutto quello che la persona fa
su AWS risulterebbe fatto dall'altro. su AWS risulterebbe fatto dall'altro.
5. **VPN**, solo se su LastPass ha la nota *VPN* (chiediglielo). Prima 5. **VPN**, solo se su LastPass ha la scheda *VPN* (chiediglielo). Prima
installi tu OpenVPN Connect: su Windows installi tu OpenVPN Connect: su Windows
`winget install -e --id OpenVPNTechnologies.OpenVPNConnect`, su Mac `winget install -e --id OpenVPNTechnologies.OpenVPNConnect`, su Mac
`brew install --cask openvpn-connect`. Poi lei, un passo alla volta: apre la nota VPN su LastPass e scarica il file `brew install --cask openvpn-connect`. Poi lei, un passo alla volta: apre la scheda VPN su LastPass e scarica il file
`.ovpn` allegato; apre OpenVPN Connect → *Upload File* (o *Import `.ovpn` allegato; apre OpenVPN Connect → *Upload File* (o *Import
Profile* → *File*) → *Browse* → il file in *Download*; scrive utente e Profile* → *File*) → *Browse* → il file in *Download*; scrive utente e
password della VPN dalla stessa nota, spunta *Save password*, *Connect*. password della VPN dalla stessa scheda, spunta *Save password*, *Connect*.
È accesa quando l'interruttore diventa verde (*Connected*). È accesa quando l'interruttore diventa verde (*Connected*).
6. **Dirlo all'amministratore**: risponde alla mail *I tuoi accessi OTO* 6. **Dirlo all'amministratore**: risponde alla mail *I tuoi accessi OTO*
scrivendo «ho finito la configurazione». È il segnale scrivendo «ho finito la configurazione». È il segnale
+4 -2
View File
@@ -14,8 +14,10 @@ scaricano i progetti stessi da AWS, con il tuo accesso personale.
Il resto lo fa Claude: installa i programmi e ti dice cosa cliccare. Tu Il resto lo fa Claude: installa i programmi e ti dice cosa cliccare. Tu
scrivi le tue chiavi nel terminale, con il comando che ti da' Claude. scrivi le tue chiavi nel terminale, con il comando che ti da' Claude.
Utenti e password sono nella mail *I tuoi accessi OTO* che ti ha mandato chi L'utente e' nella mail *I tuoi accessi OTO* che ti ha mandato chi amministra;
amministra; la chiave AWS e la VPN in una nota LastPass condivisa con te. password e chiavi su LastPass, nelle schede condivise con te:
`Gitea > nome.cognome` (password Gitea), `AWS > Nome Cognome` (chiave AWS nel
campo di testo) e, se ti serve, *VPN*.
## Una regola ## Una regola
+17 -11
View File
@@ -18,7 +18,8 @@ titolo "1. Gitea"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# Alla persona si chiede la password, non un token: il token lo crea lo # Alla persona si chiede la password, non un token: il token lo crea lo
# script con l'API di Gitea, cosi' non c'e' da cercarlo fra le impostazioni. # script con l'API di Gitea, cosi' non c'e' da cercarlo fra le impostazioni.
# La password e' quella della mail di benvenuto: dal 07/10/2026 Gitea non # La password e' nella scheda LastPass "Gitea > nome.cognome", condivisa da
# chi amministra (nella mail non c'e', apposta): dal 07/10/2026 Gitea non
# obbliga piu' a cambiarla. Chi e' stato creato prima invece deve ancora # obbliga piu' a cambiarla. Chi e' stato creato prima invece deve ancora
# cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto. # cambiarla nel browser, e Gitea gli risponde 403: lo si dice sotto.
UTENTE="$(utente_gitea)" UTENTE="$(utente_gitea)"
@@ -40,10 +41,11 @@ fi
if [ -n "$UTENTE" ] ; then if [ -n "$UTENTE" ] ; then
ok "token Gitea gia' salvato (utente $UTENTE)" ok "token Gitea gia' salvato (utente $UTENTE)"
else else
echo " Utente e password di Gitea sono nella mail \"I tuoi accessi OTO\" che ti ha" echo " L'utente Gitea e' nella mail \"I tuoi accessi OTO\" che ti ha mandato chi"
echo " mandato chi amministra: copiali da li'." echo " amministra. La password no: e' su LastPass, nella scheda \"Gitea > nome.cognome\""
echo " col tuo utente (per esempio \"Gitea > sara.locatelli\"), campo Password."
read -r -p " Il tuo utente Gitea (dalla mail, riga utente Gitea): " UTENTE_DATO read -r -p " Il tuo utente Gitea (dalla mail, riga utente Gitea): " UTENTE_DATO
read -r -s -p " La tua password Gitea, dalla nota LastPass (non si vede, ed e' normale): " PASSWORD ; echo read -r -s -p " La tua password Gitea, dalla scheda LastPass \"Gitea > $UTENTE_DATO\" (non si vede, ed e' normale): " PASSWORD ; echo
# utente:password passano a curl da stdin, non dalla riga di comando # utente:password passano a curl da stdin, non dalla riga di comando
# (che chiunque sul PC vede con ps). Virgolette e \ vanno protette. # (che chiunque sul PC vede con ps). Virgolette e \ vanno protette.
PASSWORD_CURL="$(printf '%s:%s' "$UTENTE_DATO" "$PASSWORD" | sed 's/[\\"]/\\&/g')" PASSWORD_CURL="$(printf '%s:%s' "$UTENTE_DATO" "$PASSWORD" | sed 's/[\\"]/\\&/g')"
@@ -92,7 +94,8 @@ fi
titolo "2. AWS" titolo "2. AWS"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
# La chiave di accesso la crea chi amministra insieme all'utente, e la # La chiave di accesso la crea chi amministra insieme all'utente, e la
# persona la trova nella nota LastPass della chiave AWS: qui la si incolla # persona la trova su LastPass, nel campo di testo della scheda
# "AWS > Nome Cognome": qui la si incolla
# una volta e finisce in ~/.aws/credentials, dove la leggono la AWS CLI e gli # una volta e finisce in ~/.aws/credentials, dove la leggono la AWS CLI e gli
# script dei progetti. Se non ce l'ha (e' arrivata prima, o l'ha persa), se # script dei progetti. Se non ce l'ha (e' arrivata prima, o l'ha persa), se
# ne crea una dalla console: la strada e' scritta qui sotto. # ne crea una dalla console: la strada e' scritta qui sotto.
@@ -103,10 +106,13 @@ titolo "2. AWS"
# quello che la persona fa su AWS risulterebbe fatto da un altro. # quello che la persona fa su AWS risulterebbe fatto da un altro.
chiedi_chiave_aws () { chiedi_chiave_aws () {
echo " Serve la tua chiave di accesso AWS, due pezzi: Access key ID e Secret access key." echo " Serve la tua chiave di accesso AWS, due pezzi: Access key ID e Secret access key."
echo " Non sono nella mail: li trovi nella nota LastPass che ti ha condiviso" # Il nome della scheda e' quello per esteso: sara.locatelli -> Sara Locatelli.
echo " chi amministra. Se li' non c'e', la crei tu nella console AWS:" SCHEDA_AWS="AWS > $(printf '%s' "${UTENTE:-nome.cognome}" | awk -F. '{for (i = 1; i <= NF; i++) printf "%s%s", (i > 1 ? " " : ""), toupper(substr($i, 1, 1)) substr($i, 2)}')"
echo " 1. entra su $AWS_CONSOLE (IAM user, utente e password" echo " Non sono nella mail: li trovi su LastPass, nella scheda \"$SCHEDA_AWS\" che ti"
echo " della mail di benvenuto);" echo " ha condiviso chi amministra, nel campo di testo (righe Access key ID e Secret"
echo " access key). Se li' non c'e', la crei tu nella console AWS:"
echo " 1. entra su $AWS_CONSOLE (IAM user, utente, password e"
echo " codice a due fattori dalla stessa scheda LastPass);"
echo " 2. il tuo nome in alto a destra → Security credentials;" echo " 2. il tuo nome in alto a destra → Security credentials;"
echo " 3. riquadro Access keys → Create access key → Command Line Interface (CLI)," echo " 3. riquadro Access keys → Create access key → Command Line Interface (CLI),"
echo " spunta la conferma → Next → Create access key." echo " spunta la conferma → Next → Create access key."
@@ -128,7 +134,7 @@ chiedi_chiave_aws () {
if ! IDENTITA="$(aws sts get-caller-identity --query Arn --output text 2> /dev/null)" ; then if ! IDENTITA="$(aws sts get-caller-identity --query Arn --output text 2> /dev/null)" ; then
male "AWS non accetta questa chiave: controlla di aver copiato i due pezzi interi, senza scambiarli, e rilancia." male "AWS non accetta questa chiave: controlla di aver copiato i due pezzi interi, senza scambiarli, e rilancia."
elif [ -n "$UTENTE" ] && [ "${IDENTITA##*/}" != "$UTENTE" ] ; then elif [ -n "$UTENTE" ] && [ "${IDENTITA##*/}" != "$UTENTE" ] ; then
male "questa chiave e' di ${IDENTITA##*/}, non tua ($UTENTE): usa quella della tua nota LastPass, e rilancia." male "questa chiave e' di ${IDENTITA##*/}, non tua ($UTENTE): usa quella della tua scheda LastPass \"$SCHEDA_AWS\", e rilancia."
else else
ok "accesso AWS: ${IDENTITA##*/}" ok "accesso AWS: ${IDENTITA##*/}"
fi fi
@@ -226,4 +232,4 @@ ok "ssh $STAGING_NOME, ssh $PRODUZIONE_NOME e ssh $PRODUZIONE_VECCHIA_NOME: conf
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
titolo "Fatto" titolo "Fatto"
# -------------------------------------------------------------------------- # --------------------------------------------------------------------------
echo " Ora: accendi la VPN (file e credenziali nella nota LastPass), poi torna da Claude." echo " Ora: se su LastPass hai la scheda VPN, accendi la VPN (file e credenziali sono li'); poi torna da Claude."