我试图使用azuresdkforpython在windowsazure上部署linuxvm。幸运的是,我能够使用基于密码的身份验证配置一个VM,但是没有成功地使用SSH密钥。有人能解释一下我如何通过azuresdkforpython配置ssh登录吗?在
我在这里找到了一个用ssh密钥创建linuxvm的测试代码:(请参见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)似乎准备使用用户名、用户名和ssh进行身份验证。另外,看起来PublicKey和KeyPair类用于使用密钥配置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')
密钥对是x509证书。在
我试过用这些线路,但未能部署虚拟机。我想我误解了函数的用法。有什么帮助吗?在
SERVICE_CERT_指纹是pem文件的指纹,您必须使用add_SERVICE_certificate方法上载其pfx文件。在
可以使用以下方法生成一组新的密钥:
这将生成密钥文件和pem文件
^{pr2}$这将生成pfx文件
下一步上传pfx文件
使用获取pem文件的指纹
测试代码中提到的服务指纹是这个没有冒号的指纹。在
现在可以使用密钥文件登录到机器,例如
请参考http://msdn.microsoft.com/library/azure/jj157194.aspx#SSH了解各个字段的含义。请随意提问,我花了相当多的时间来完成这个设置。在
相关问题 更多 >
编程相关推荐