Poner claves RSA en la bóveda de claves azul

14

¿Cómo puedo almacenar mi par de claves (típicamente id_rsa e id_rsa.pub) en el almacén de claves azul? Quiero poner la clave pública en mi servicio GIT y permitir que una máquina virtual descargue la clave privada del almacén de claves de Azure -> para que pueda acceder a GIT de forma segura.

Intenté hacer un par de archivos PEM y combinarlos en un pfx y subirlos como secreto pero el archivo que recibo parece ser completamente diferente a cualquier archivo pem.

También intenté ingresar manualmente mi clave secreta en Azure, pero convierte las nuevas líneas en espacios.

DespiadadoMaverick
fuente

Respuestas:

23

Puede usar la CLI de Azure para cargar id_rsaen Azure Key Vault.

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

Podrías usar -hpara obtener ayuda.

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

También puede descargar el secreto del almacén de claves.

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

Comparo las llaves en mi laboratorio. Son lo mismo.

Shui shengbao
fuente
Realmente aprecio todas sus respuestas aquí, gracias!
Recibe
@Reaces Me alegra saber que mi respuesta es útil para usted.
Shui shengbao
Lo siento, no soy el OP, solo leí esto y lo probé y lo archivé como conocimiento útil y sentí que te debía un voto + comentario :). Disculpas por la confusión.
Recibe
> Lo siento, no soy el OP, solo leí esto y lo probé y lo archivé como conocimiento útil y sentí que te debía un voto + comentario :) Suena gracioso. Muy amigable comunidad.
Net Runner
2
Para su información, seguir es la forma correcta de obtener el secreto que getya no funciona. az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
Gregory Suvalian
12

La respuesta anterior de Shengbao Shui muestra el comando para almacenar un secreto con la CLI de Azure 1.0 (Nodo). Para Azure CLI 2.0 (Python) use la siguiente sintaxis:

Establecer / Almacenar clave:

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

Argumentos:

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.

Recuperar / Obtener clave:

Guarde la clave en un archivo ~/.ssh/mykeyutilizando la utilidad jq.

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

Los archivos pueden imprimirse con una nueva línea final, que puede eliminar con un perl one-liner:

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

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

Genere la clave pública a partir del archivo de clave privada ...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
Carretera de la vida
fuente