Помещение ключей RSA в хранилище ключей Azure

Как я могу сохранить свою пару ключей (обычно id_rsa и id_rsa.pub) в хранилище ключей Azure. Я хочу поместить открытый ключ в свою службу GIT и разрешить виртуальной машине загружать закрытый ключ из хранилища ключей Azure -> Чтобы она могла безопасно обращаться к GIT.

Я попытался создать пару файлов PEM и объединить их в pfx и загружая его в качестве секрета, но полученный мной файл полностью отличается от любого файла pem.

Я также пытался вручную ввести свой секретный ключ в Azure, но он превращает символы новой строки в пробелы.

12
задан 4 May 2017 в 09:46
3 ответа

Կարող եք օգտագործել Azure CLI id_rsa Azure Key Vault- ում վերբեռնելու համար:

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

Օգնություն ստանալու համար կարող եք օգտագործել -h :

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

Կարող եք նաև գաղտնի բեռնել բանալիների պահոցից:

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

Ես համեմատում եմ իմ լաբորատորիայի ստեղները: Նրանք նույնն են:

19
ответ дан 2 December 2019 в 21:31

В предыдущем ответе Шэнбао Шуй показана команда для сохранения секрета с помощью Azure CLI 1.0 (Node). Для Azure CLI 2.0 (Python) используйте следующий синтаксис:

Установить / сохранить ключ:

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.

Получить / получить ключ:

Сохранить ключ в файл ~ / .ssh / mykey с использованием утилиты jq.

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

Файлы могут печататься с завершающей новой строкой, которую вы можете удалить с помощью однострочника perl:

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

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

Сгенерируйте открытый ключ из закрытого ключевой файл ...

ssh-keygen -y -f ~/.ssh/myfile > ~/.ssh/myfile.pub
8
ответ дан 2 December 2019 в 21:31

Если мы хотим сохранить ключ ssh в KeyVault в формате с кодировкой ASCII, мы можем использовать приведенную ниже команду. $az keyvault secret set --vault-name --name --file --encoding ascii

0
ответ дан 7 January 2021 в 15:14

Теги

Похожие вопросы