Repository navigation
v0.3.1 — Corregir el ssh-keyscan del instalador
Si vas a instalar, usá esta versión. El instalador de
v0.3.0imprime un comando que deja elknown_hostsmal formado y el deploy falla con un mensaje que no señala la causa.v0.3.1corrige sólo eso.
Corrección
El bloque «QUE FALTA» que install.sh imprime al terminar recomendaba un comando que corrompía el known_hosts:
ssh-keyscan -p 22 -H <host> 2>/dev/null | sed 's/^/|1 h=|/' > known_hosts-H ya produce la forma hasheada (|1|HASH ...). El sed prefijaba cada línea — incluidos los comentarios # host:22 SSH-2.0-... — y el archivo dejaba de ser un known_hosts válido:
$ ssh-keygen -lf known_hosts
known_hosts is not a public key file.
Como el workflow escribe ese valor tal cual en UserKnownHostsFile y usa StrictHostKeyChecking=yes, el deploy fallaba con:
Host key verification failed.
Un mensaje que no dice que el secret está mal formado. El operador terminaba revisando la clave privada, el usuario o los permisos.
El comando correcto
ssh-keyscan -p 22 -H <host> 2>/dev/null > known_hosts<host> tiene que ser exactamente el valor de DEPLOY_HOST. Con -H el nombre queda hasheado: un keyscan contra 192.168.1.10 no sirve si DEPLOY_HOST dice webcmp.local, y el síntoma es el mismo Host key verification failed.
Verificado contra github.com: sin el sed, ssh-keygen -lf lista los tres fingerprints y ssh pasa la verificación de host.
Qué más cambia
Nada. Es una cadena impresa al final de una instalación exitosa; la lógica del instalador no se toca.
Verificación
bash -n deploy/install.shybash -n deploy/tests/test_shell_scripts.shbash deploy/tests/run.sh→ 67 ok, 0 fallas (eran 65)detect-secretslimpio- CI completo en verde sobre el PR #160, con la suite de Django entera
Instalación
Primero el plan, sin tocar nada:
curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/v0.3.1/deploy/install.sh \
| sudo bash -s -- --dry-runDespués la corrida real, en una terminal interactiva del servidor (el instalador aborta sin TTY: un instalador que adivina en un pipe escribe el .env equivocado y nadie lo ve hasta que el sitio responde DisallowedHost):
curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/v0.3.1/deploy/install.sh \
| sudo bash -sAl final imprimé los cuatro secrets que hay que cargar en Settings → Environments → production. El de DEPLOY_SSH_KNOWN_HOSTS ya sale con el comando corregido.
Gate de aprobación
El environment production tiene ahora required_reviewers (@orl92, @yoelvismr) con prevent_self_review: true: el deploy automático espera la aprobación de una persona distinta de quien lo disparó. Los secrets existentes no se tocaron.