将RSA密钥放入Azure密钥库中


14

如何将我的密钥对(通常是id_rsa和id_rsa.pub)存储在天蓝色的密钥库中。我想将公钥放入我的GIT服务中,并允许虚拟机从Azure密钥库->中下载私钥,以便它可以安全地访问GIT。

我尝试制作一对PEM文件,然后将它们组合成一个pfx,然后将其上传为秘密文件,而我回来的文件似乎与这两个pem文件完全不同。

我还尝试了将我的秘密密钥手动输入到Azure,但是它将换行符转换为空格。

Answers:


23

您可以使用Azure CLI上载到id_rsaAzure 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

我在实验室比较按键。他们是一样的。


非常感谢您的所有回答,谢谢!
收起

@Reaces我很高兴知道我的回答对您有所帮助。
水生宝

抱歉,我不是OP,我只是阅读并对其进行了测试,并将其归档为有用的知识,并觉得我欠您一张票+评论:)。抱歉造成混乱。
收起

>抱歉,我不是OP,我只是阅读并对其进行了测试,并将其作为有用的知识进行归档,并觉得我欠您一张票+评论:)听起来很有趣。如此友好的社区。
网络赛跑者

2
仅供参考,以下是获取秘密的正确方法get不再起作用。az keyvault secret download --name <KeyNameHere> --vault-name <vaultNamehere> --file <filename here>
格雷戈里·苏瓦利安

12

Shengbao Shui的上一个答案显示了使用Azure CLI 1.0(节点)存储秘密的命令。对于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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.