Cómo arreglar problema de conexión por SSH a servidores antiguos desde MacOS Ventura

Con la actualización a Ventura en los Mac ha cambiado la configuración por defecto del SSH y deja de ser posible conectarse a servidores Linux que tengan ya cierto tiempo.

Al intentar la conexión por SSH (con certificado) con la opción «-v» se puede ver esta traza:

...
debug1: Next authentication method: publickey
debug1: Offering public key: ************* SHA256:*********** explicit
debug1: send_pubkey_test: no mutual signature algorithm
debug1: Next authentication method: password
root@server's password:
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
root@server's password:

Para arreglar este problema es necesario editar el fichero de config de SSH en el MAC /etc/ssh/ssh_config y añadir al final las siguientes líneas:

...
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa

Tras este cambio ya se podrá terminar la autenticación.

Esto mismo pasa si la autenticación se hace con «password» en lugar de con certificado.

Cómo cambiar el environment de una shell para simular condiciones de ejecución de crontab

Cuando al ejecutar un comando o script en una shell funciona pero al programarlo en un cron falla, sólo se puede debugear si podemos ejecutarlo a mano en las mismas condiciones que lo hace crontab.

Para eso, hay que ejecutar lo siguiente que replica el environment de crontab en la shell:

$ env -i /bin/bash --noprofile --norc

Después de eso se puede ejecutar lo que sea con el mismo environment que tendrá crontab.

Cómo programar tareas en crontab

Este es el esquema de programación de tareas en crontab:

# *    *    *    *    *  command to execute
# ┬    ┬    ┬    ┬    ┬
# │    │    │    │    │
# │    │    │    │    │
# │    │    │    │    └── day of week (0 - 6) (0 Sun, 6 Sat)
# │    │    │    └────── month (1 - 12)
# │    │    └────────── day of month (1 - 31)
# │    └────────────── hour (0 - 23)
# └────────────────── min (0 - 59)

Esquema visto aquí:  https://stackoverflow.com/questions/19502546/cronjob-for-1st-of-january-every-year