Mettre les clés RSA dans le coffre de clés azur

14

Comment puis-je stocker ma paire de clés (généralement id_rsa et id_rsa.pub) dans le coffre de clés azur. Je souhaite placer 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.

MercilessMaverick
la source

Réponses:

23

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

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

Vous pouvez utiliser -hpour 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. Ils sont pareils.

Shui shengbao
la source
J'apprécie vraiment toutes vos réponses ici, merci!
Réagit
@Reaces Je suis heureux de savoir que ma réponse vous est utile.
Shui shengbao
Désolé, je ne suis pas l'OP, je viens de lire ceci et de le tester et de le classer comme connaissance utile et j'ai senti que je vous devais un vote + commentaire :). Toutes mes excuses pour la confusion.
Réagit
> Désolé, je ne suis pas l'OP, je viens de lire ceci et de le tester et de le ranger comme connaissance utile et j'ai senti que je vous devais un vote + commentaire :) Ça a l'air drôle. Communauté tellement sympathique.
Net Runner
2
Pour info, ce qui suit est que les moyens appropriés pour obtenir le secret getne fonctionnent plus. az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
Gregory Suvalian
12

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 / obtenir la clé:

Enregistrez la clé dans un fichier ~/.ssh/mykeyà l' aide de 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 un one-liner 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
Autoroute de la vie
la source