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 ''」