VM の SSH キーを生成しようとしましたが、エラーが発生し、オプションに引数が必要です -- P

VM の SSH キーを生成しようとしましたが、エラーが発生し、オプションに引数が必要です -- P

VMで以下のコマンドを手動で実行し、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\nusage: ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]\n [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]\n [-N new_passphrase] [-O option] [-w provider]\n ssh-keygen -p [-f keyfile] [-m format] [-N new_passphrase]\n [-P old_passphrase]\n ssh-keygen -i [-f input_keyfile] [-m key_format]\n ssh-keygen -e [-f input_keyfile] [-m key_format]\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 ''」

関連情報