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.
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.
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:
az keyvault secret set --vault-name 'myvault' -n 'secret-name' -f '~/.ssh/id_rsa'
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.
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