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.

MercilessMaverick
quelle

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.

Shui Shengbao
quelle
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
Autobahn des Lebens
quelle