Ejecuté el siguiente comando manualmente en la máquina virtual y puedo generar las claves ssh, pero cuando intenté usar el mismo script en el proceso de automatización de las acciones de github, aparece el error.
Guion: nombre: script de la CLI de Azure
uses: azure/CLI@v1
with:
inlineScript: |
az vm run-command invoke --command-id RunShellScript -g "${{ env.RESOURCEGROUPNAME }}" -n "${{ env.VM_NAME }}" --scripts "chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P """
error:\n[stdout]\n\n[stderr]\nopción requiere un argumento - P\r\nusage: ssh-keygen [-q] [-b bits] [-C comentario] [-f archivo_clave_salida] [-m formato]\n [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]\n [-N nueva frase_contraseña] [-O opción] [-w proveedor]\n ssh-keygen -p [-f archivo clave] [-m formato] [-N nueva_contraseña]\n [-P antigua_contraseña]\n ssh-keygen -i [-f archivo_clave_entrada] [-m formato_clave]\n ssh-keygen -e [-f archivo_clave_entrada] [-m formato_clave]\n
Respuesta1
Se pueden utilizar comillas simples en lugar de dobles. O Vise Versa para el campo Contraseña.
'chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P "" '
o
"chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P '' "