簡體   English   中英

如何使用azure-sdk-for-python為Linux VM的密鑰對配置SSH登錄?

[英]How to configure SSH login with key pairs for a Linux VM using azure-sdk-for-python?

我試圖使用azure-sdk-for-python在Windows Azure上部署Linux VM。 幸運的是,我能夠使用基於密碼的身份驗證配置VM,但未成功使用SSH密鑰。 任何人都可以解釋為什么我可以通過azure-sdk-for-python配置ssh登錄?

我在這里找到了一個用ssh鍵創建linux vm的測試代碼:(參見_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類用於配置帶密鑰的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證書。

我嘗試使用這些線路但未能部署VM。 我想我誤解了函數的使用。 有幫助嗎?

SERVICE_CERT_THUMBPRINT是pem文件,其pfx文件必須使用add_service_certificate方法上載。

您可以使用以下方法生成一組新密鑰:

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

這將生成密鑰文件和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是沒有冒號的指紋。

您現在可以使用密鑰文件登錄計算機,例如

ssh -i mycert.key -p 22 username@azurecloud.cloudapp.net

有關各個字段的含義,請參閱http://msdn.microsoft.com/library/azure/jj157194.aspx#SSH 隨意提問,我花了相當多的時間來完成這個設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM