Wkładanie kluczy RSA do przechowalni kluczy lazurowych

14

Jak mogę przechowywać moją parę kluczy (zazwyczaj id_rsa i id_rsa.pub) w magazynie kluczy lazurowych. Chcę umieścić klucz publiczny w mojej usłudze GIT i pozwolić maszynie wirtualnej na pobranie klucza prywatnego z usługi Azure Key Vault -> Aby mógł bezpiecznie uzyskiwać dostęp do GIT.

Próbowałem zrobić parę plików PEM i połączyć je w plik pfx i przesłać, że jako tajny plik, który otrzymuję, wydaje się być zupełnie inny niż plik pem.

Próbowałem także ręcznie wprowadzić mój tajny klucz do platformy Azure, ale zmienia on znaki nowej linii w spacje.

MercilessMaverick
źródło

Odpowiedzi:

23

Możesz użyć interfejsu wiersza polecenia platformy Azure, aby przesłać id_rsado usługi Azure Key Vault.

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

Możesz skorzystać -hz pomocy.

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

Możesz również pobrać sekret z magazynu kluczy.

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

Porównuję klucze w moim laboratorium. Są takie same.

Shui Shengbao
źródło
Naprawdę doceniam wszystkie twoje odpowiedzi tutaj, dzięki!
Reaces
@Reaces Cieszę się, że moja odpowiedź jest dla Ciebie pomocna.
Shui shengbao
Przepraszam, nie jestem OP, po prostu przeczytałem to i przetestowałem i zapisałem jako użyteczną wiedzę i czułem, że jestem wam winien głosowanie w górę + komentarz :). Przepraszamy za zamieszanie.
Reaces
> Przepraszam, nie jestem OP, po prostu to przeczytałem, przetestowałem i zapisałem jako użyteczną wiedzę i czułem, że jestem ci winien głosowanie + komentarz :) Brzmi zabawnie. Tak przyjazna społeczność.
Net Runner
2
Do Twojej wiadomości, przestrzeganie właściwych sposobów uzyskania tajemnicy getjuż nie działa. az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
Gregory Suvalian
12

Poprzednia odpowiedź Shengbao Shui pokazuje polecenie przechowywania tajnego klucza przy użyciu interfejsu wiersza polecenia platformy Azure 1.0 (węzeł). W przypadku interfejsu wiersza polecenia platformy Azure 2.0 (Python) użyj następującej składni:

Ustaw / zapisz klucz:

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

Argumenty:

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.

Odzyskaj / Pobierz klucz:

Zapisz klucz do pliku ~/.ssh/mykeyza pomocą narzędzia jq.

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

Pliki mogą być drukowane z końcowym znakiem nowej linii, który można usunąć za pomocą linijki Perl:

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

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

Wygeneruj klucz publiczny z pliku klucza prywatnego ...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
Autostrada życia
źródło