Ich habe den folgenden Befehl manuell in der VM ausgeführt und kann die SSH-Schlüssel generieren. Wenn ich jedoch versuche, dasselbe Skript in der Automatisierungspipeline von GitHub-Aktionen zu verwenden, erhalte ich den Fehler
Skript: Name: Azure CLI-Skript
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 """
Fehler:\n[stdout]\n\n[stderr]\nOption erfordert ein Argument -- P\r\nVerwendung: ssh-keygen [-q] [-b Bits] [-C Kommentar] [-f Ausgabeschlüsseldatei] [-m Format]\n [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]\n [-N neue_Passphrase] [-O Option] [-w Anbieter]\n ssh-keygen -p [-f Schlüsseldatei] [-m Format] [-N neue_Passphrase]\n [-P alte_Passphrase]\n ssh-keygen -i [-f Eingabeschlüsseldatei] [-m Schlüsselformat]\n ssh-keygen -e [-f Eingabeschlüsseldatei] [-m Schlüsselformat]\n
Antwort1
Anstelle von doppelten Anführungszeichen können Sie auch einfache Anführungszeichen verwenden. Oder umgekehrt für das Kennwortfeld.
'chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P "" '
oder
„chmod 700 /home/adminuser/.ssh && ssh-keygen -t rsa -f /home/adminuser/.ssh/id_rsa -P '' “