Einfügen von RSA-Schlüsseln in das Azure Key Vault


12

Wie kann ich mein Schlüsselpaar (normalerweise id_rsa und id_rsa.pub) im Azure Key Vault speichern? Ich möchte den öffentlichen Schlüssel in meinen GIT-Dienst einfügen und einer virtuellen Maschine erlauben, den privaten Schlüssel aus dem Azure-Schlüsseldepot herunterzuladen -> damit sie sicher auf GIT zugreifen kann.

Ich habe versucht, ein Paar PEM-Dateien zu erstellen, sie zu einem Pfx zu kombinieren und hochzuladen, dass die Datei, die ich zurückerhalte, als Geheimnis völlig anders zu sein scheint als jede PEM-Datei.

Ich habe auch versucht, meinen geheimen Schlüssel manuell in Azure einzugeben, aber dadurch werden die Zeilenumbrüche in Leerzeichen umgewandelt.

Antworten:


20

Sie können Azure CLI zum Hochladen id_rsain Azure Key Vault verwenden.

azure keyvault secret set --name shui --vault-name shui --file ~/.ssh/id_rsa

Sie könnten verwenden -h, um Hilfe zu bekommen.

--file <file-name>                 the file that contains the secret value to be uploaded; cannot be used along with the --value or --json-value flag

Sie können das Geheimnis auch aus dem Schlüsseldepot herunterladen.

az keyvault secret download --name shui --vault-name shui --file ~/.ssh/id_rsa

Ich vergleiche die Schlüssel in meinem Labor. Sie sind gleich.


Ich freue mich sehr über all Ihre Antworten hier, danke!
— Reagiert

@Reaces Ich bin froh zu wissen, dass meine Antwort für Sie hilfreich ist.
— Shui Shengbao

Entschuldigung, ich bin nicht der OP, ich habe dies nur gelesen und getestet und als nützliches Wissen abgelegt und hatte das Gefühl, dass ich Ihnen eine Abstimmung + einen Kommentar schulde :). Entschuldigung für die Verwirrung.
— Reagiert

> Sorry, ich bin nicht der OP, ich habe das nur gelesen und getestet und als nützliches Wissen abgelegt und hatte das Gefühl, ich schulde dir eine Abstimmung + Kommentar :) Klingt lustig. So freundliche Gemeinschaft.
— Net Runner

2
Zu Ihrer Information, das Befolgen der richtigen Wege, um geheim zu werden, getfunktioniert nicht mehr. az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
— Gregory Suvalian

9

Die vorherige Antwort von Shengbao Shui zeigt den Befehl zum Speichern eines Geheimnisses mithilfe der Azure CLI 1.0 (Knoten). Verwenden Sie für Azure CLI 2.0 (Python) die folgende Syntax:

Set / Store Key:

az keyvault secret set --vault-name 'myvault' -n 'secret-name' -f '~/.ssh/id_rsa'

Argumente:

Arguments
    --name -n    [Required]: Name of the secret.
    --vault-name [Required]: Name of the key vault.
    --description          : Description of the secret contents (e.g. password, connection string,
                             etc).
    --disabled             : Create secret in disabled state.  Allowed values: false, true.
    --expires              : Expiration UTC datetime  (Y-m-d'T'H:M:S'Z').
    --not-before           : Key not usable before the provided UTC datetime  (Y-m-d'T'H:M:S'Z').
    --tags                 : Space-separated tags in 'key[=value]' format. Use '' to clear existing
                             tags.

Content Source Arguments
    --encoding -e          : Source file encoding. The value is saved as a tag (`file-
                             encoding=<val>`) and used during download to automatically encode the
                             resulting file.  Allowed values: ascii, base64, hex, utf-16be,
                             utf-16le, utf-8.  Default: utf-8.
    --file -f              : Source file for secret. Use in conjunction with '--encoding'.
    --value                : Plain text secret value. Cannot be used with '--file' or '--encoding'.

Global Arguments
    --debug                : Increase logging verbosity to show all debug logs.
    --help -h              : Show this help message and exit.
    --output -o            : Output format.  Allowed values: json, jsonc, table, tsv.  Default:
                             json.
    --query                : JMESPath query string. See http://jmespath.org/ for more information
                             and examples.
    --verbose              : Increase logging verbosity. Use --debug for full debug logs.

Schlüssel abrufen / abrufen:

Speichern Sie den Schlüssel ~/.ssh/mykeymit dem Dienstprogramm jq in einer Datei .

az keyvault secret show --vault-name myvault --name 'secret-name' | jq -r .value > ~/.ssh/mykey

Dateien werden möglicherweise mit einem nachgestellten Zeilenumbruch gedruckt, den Sie mit einem Perl-Einzeiler entfernen können:

perl -pi -e 'chomp if eof' ~/.ssh/mykey

# Set permissions to user-read only
chmod 600 ~/.ssh/mykey

Generieren Sie den öffentlichen Schlüssel aus der privaten Schlüsseldatei ...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.