Я выполнил указанную ниже команду вручную в виртуальной машине и смог сгенерировать ключи SSH, но когда я попытался использовать тот же скрипт в конвейере автоматизации из действий GitHub, я получил ошибку
Сценарий: имя: скрипт Azure CLI
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 """
ошибка:\n[stdout]\n\n[stderr]\nопция требует аргумента -- P\r\nuиспользование: ssh-keygen [-q] [-b биты] [-C комментарий] [-f выходной_ключевой_файл] [-m формат]\n [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]\n [-N новая_парольная_фраза] [-O опция] [-w поставщик]\n ssh-keygen -p [-f ключевой_файл] [-m формат] [-N новая_парольная_фраза]\n [-P старая_парольная_фраза]\n ssh-keygen -i [-f входной_ключевой_файл] [-m формат_ключа]\n ssh-keygen -e [-f входной_ключевой_файл] [-m формат_ключа]\n
решение1
Можно использовать одинарные кавычки вместо двойных. Или наоборот для поля «Пароль».
'chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P "" '
или
"chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P '' "