2

当我使用无密码选项“-P”创建新的 vm linux 并添加 .pem 文件的路径时,我遇到了 windows azure 命令行界面的问题,如下所示

$ azure vm create myapimachine1 b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_2-LTS-amd64-server-20130325-en-us-30GB ahmed --location "West US" --ssh 22 -t /media/ahmed/1578-4B0E/WindowsAzure/AzureCert/mycert.pem -P  

Azure 要求我插入类型为 .pfx 而不是 pem 的证书:

info:    Executing command vm create
+ Looking up image                                                             
+ Looking up cloud service                                                     
warn:    --location option will be ignored
+ Getting cloud service properties                                             
+ Looking up deployment                                                        
+ Retrieving storage accounts                                                  
-error:   The certificate file is invalid. The certificate file must be a Base64-encoded .pfx file.
info:    Error information has been recorded to azure.err
error:   vm create command failed

当我使用 .pfx 证书运行相同的命令时,如下所示:

$ azure vm create myapimachine1 b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_2-LTS-amd64-server-20130325-en-us-30GB ahmed --location "West US" --ssh 22 -t /media/ahmed/1578-4B0E/WindowsAzure/AzureCert/mycert.pfx -P

Azure 命令行要求我添加 .pem 格式的 ssh 证书:

nfo:    Executing command vm create
+ Looking up image                                                             
+ Looking up cloud service                                                     
warn:    --location option will be ignored
+ Getting cloud service properties                                             
+ Looking up deployment                                                        
+ Retrieving storage accounts                                                  
error:   Specified SSH certificate is not in PEM format
info:    Error information has been recorded to azure.err
error:   vm create command failed

注意:此过程在 Windows Azure 门户上正常工作,但我在 python 的 REST API 和 Azure 的 CLI 中遇到了这个问题

谢谢

艾哈迈德·阿卜杜拉

4

1 回答 1

0

我也遇到了这个问题(azure cli v0.8.11)

在查看源代码时,该工具正在寻找一个完全以

-----BEGIN CERTIFICATE-----并以完全结束-----END CERTIFICATE-----

(来自:lib/util/utils.js:34-35、252-254 & lib/node_modules/azure_cli/vmclient.js:3448)

我怀疑看看 /media/ahmed/1578-4B0E/WindowsAzure/AzureCert/mycert.pem 会发现

-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----

作为存在和结束标记,就像我的一样。

我在这里找到了一个解决方案,它解释了问题所在,并提供了一篇文章的链接,该文章解释了如何解决该问题。

(如果您赶时间,请使用命令的输出:

openssl req -x509 -key ~/.ssh/id_rsa -nodes -days 365 -newkey rsa:2048 -out myCert.pem

而不是裸键)。

于 2014-11-01T20:14:30.937 回答