web-dev-qa-db-fra.com

Placement des clés RSA dans le coffre de clés Azure

Comment puis-je stocker ma paire de clés (généralement id_rsa et id_rsa.pub) dans le coffre de clés Azure. Je souhaite mettre la clé publique dans mon service GIT et autoriser une machine virtuelle à télécharger la clé privée depuis le coffre de clés Azure -> afin qu'elle puisse accéder à GIT en toute sécurité.

J'ai essayé de créer une paire de fichiers PEM et de les combiner dans un pfx et de télécharger qu'en tant que secret, le fichier que je récupère semble être complètement différent de l'un ou l'autre fichier pem.

J'ai également essayé de saisir manuellement ma clé secrète dans Azure, mais cela transforme les nouvelles lignes en espaces.

14

Vous pouvez utiliser Azure CLI pour télécharger id_rsa à Azure Key Vault.

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

Vous pouvez utiliser -h Pour obtenir de l'aide.

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

Vous pouvez également télécharger le secret depuis le coffre de clés.

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

Je compare les clés de mon laboratoire. Ce sont les mêmes.

23
Shui shengbao

La réponse précédente de Shengbao Shui montre la commande pour stocker un secret à l'aide d'Azure CLI 1.0 (Node). Pour Azure CLI 2.0 (Python) utilisez la syntaxe suivante:

Définir/stocker la clé:

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

Arguments:

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.

Récupérer/récupérer la clé:

Enregistrez la clé dans un fichier ~/.ssh/mykey en utilisant l'utilitaire jq.

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

Les fichiers peuvent s'imprimer avec une nouvelle ligne de fin, que vous pouvez supprimer avec une ligne unique Perl:

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

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

Générez la clé publique à partir du fichier de clé privée ...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
12
Highway of Life