gpt4 book ai didi

python - 如何使用 azure-sdk-for-python 使用 key 对为 Linux VM 配置 SSH 登录?

转载 作者:行者123 更新时间:2023-11-30 23:34:58 25 4
gpt4 key购买 nike

我尝试使用 azure-sdk-for-python 在 Windows Azure 上部署 Linux VM。幸运的是,我能够使用基于密码的身份验证配置虚拟机,但未能成功使用 SSH key 。谁能解释一下如何通过 azure-sdk-for-python 配置 ssh 登录?

我在这里找到了使用 ssh key 创建 Linux 虚拟机的测试代码:(请参阅 _create_vm_linux() 函数) https://github.com/WindowsAzure/azure-sdk-for-python/blob/master/test/azuretest/test_servicemanagementservice.py(这可能不是一个正确的例子,因为它正在测试中,但我想它至少有效。)看来 LinuxConfigurationSet(self, host_name=None, user_name=None, user_password=None,disable_ssh_password_authentication=None) 准备使用 user_name、user_password 和 ssh 进行身份验证。另外,看起来 PublicKey 和 KeyPair 类用于使用 key 配置 SSH 登录。然而,我不清楚这些设置的用途。我想我必须询问有关测试代码的详细信息。

对于 PublicKey,我假设第一个参数是服务管理证书的指纹,第二个参数是 SSH 公钥的本地路径。pk = PublicKey(SERVICE_CERT_THUMBPRINT, u'/home/unittest/.ssh/authorized_keys')对于KeyPair,我假设第一个参数与PublicKey相同,第二个参数是SSH私钥的本地路径。 (我不知道为什么这里需要私钥)pair = KeyPair(SERVICE_CERT_THUMBPRINT, u'/home/unittest/.ssh/id_rsa') key 对是x509证书。

我尝试了这些行,但未能部署虚拟机。我想我误解了函数的使用。有什么帮助吗?

最佳答案

SERVICE_CERT_THUMBPRINT 是 pem 文件,您必须使用 add_service_certificate 方法上传其 pfx 文件。

您可以使用以下命令生成一组新的 key :

 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem

这将生成 key 文件和 pem 文件

 openssl pkcs12 -export -in mycert.pem -inkey mycert.key -out mycert.pfx

这将生成 pfx 文件

接下来上传 pfx 文件

cert_data_path = "/home/swati/keys/mycert.pfx"
with open(cert_data_path, "rb") as bfile:
cert_data = base64.b64encode(bfile.read())
cert_format = 'pfx'
cert_password = ''
cert_res = sms.add_service_certificate(service_name='qubolecloud',
data=cert_data,
certificate_format=cert_format,
password=cert_password)

使用

获取 pem 文件的指纹
openssl x509 -in mycert.pem -sha1 -noout -fingerprint
SHA1 Fingerprint=98:34:21:38:KJ:1E:D8:CC:A8:9E:89:21:DF:D7:5D:34:A7:D1:F2:E1

测试代码中提到的SERVICE_CERT_THUMBPRINT就是这个不带冒号的指纹。

您现在可以使用 key 文件登录计算机,例如

ssh -i mycert.key -p 22 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dca9afb9aeb2bdb1b99cbda6a9aeb9bfb0b3a9b8f2bfb0b3a9b8bdacacf2b2b9a8" rel="noreferrer noopener nofollow">[email protected]</a>

引用http://msdn.microsoft.com/library/azure/jj157194.aspx#SSH了解各个字段的含义。请随意提问,我花了相当多的时间来进行此设置。

关于python - 如何使用 azure-sdk-for-python 使用 key 对为 Linux VM 配置 SSH 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17705780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com