uncategorized

建立Azure管理所需要的SSH金鑰

進入Azure之後,我們可以透過很多工具或是方式去管理我們在Azure上面的資源或是VM,不過,可以發現很多管理上,已經不只是使用帳號密碼做登入驗證,部分身分驗證資訊已經改用SSH的金鑰來進行驗證,因此,就必須製作屬於SSH的公鑰與私鑰,當我們在建構服務時候,就需要我們自己產生SSH公鑰資訊填入,做為日後登入資訊的驗證,雖然,這樣方式是相對複雜,但對於安全性又是多一分保障。

準備事項


製作SSH Key前,必須先確認有這些工具,這樣會幫你比較簡單製作

  • Git Bash : 需安裝Git for windows,就會有這指令
  • PuTTY Tool : 作為Client端SSH連線工具,同時,也可以產生SSH Public key格式,下載點

建立SSH私鑰


如果上面工具都安裝好,就可以開始建立SSH金鑰,金鑰有公鑰與私鑰部分,因此,透過Git Bash來產生私鑰,其指令如下

1
openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout azure.key -out myazure.pem

指令輸入後,就會產生一些資訊需要你填入,當資訊填完也就產生金鑰完畢了,這時候,可以到Windwos的自己帳戶下,看到azure.key & myazure.pem這兩個檔案

私鑰檔案內會有-----BEGIN PRIVATE KEY-----字樣開頭,有了私鑰後,如果也想產生對應的公鑰,可以透過指令產生該檔案的公鑰

1
openssl.exe rsa -pubout -in azure.key -out azurePublicKey.key

公鑰檔案內會有-----BEGIN PUBLIC KEY-----字樣開頭

轉換openSSH的公私鑰


透過OpenSSH的公鑰,格式還不是讓Client端連入驗證的SSH格式,這部分我們需要做轉換,一般Azure SSH公鑰內資訊格式會是如下

PuTTY除了本身是SSH連線工具外,也可以透過他產生這方面格式的SSH公鑰。要讓Putty可以把剛剛透過openSSH建立的私鑰做轉換,首先必須讓PuTTY可以讀到這個檔案,所以,必須把.Key轉換成_rsa,這部分還是需要透過OpenSSH工具指令

1
openssl rsa -in azure.key -out azure_rsa

這樣就可以產生_rsa的私鑰

打開PuTTY工具,將剛剛_ras檔案讀入,成功後就會有下面資訊

在畫面中的Public Key for pasting into OpenSSH....,可以看到這樣資訊

1
2
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0hUrtwvnZOgKnQoFjkoSFyUvZR5nbBe4oZnLCAnNbru1kuyhDyl6zlgipCjMTLUbMxUAaBzlOSrymtQ3p5asC0cCh9otJszCI7L63BiP7nDY8pQsn+sDEOeSxEY6Lw5XezhnTzg9Mt00DXsZTeWX8Bj2c7cw4uB9US2aKR5j2x1iAOcn+RnBI8Dvt6i3QOy2KSS+4fmaSCwgfwZtAdhJrpTiNQIj3o6MHkEJeVZlFKSTt/M/tdRvG324Lw6uT/otQGk
.....

把這些資訊Copy到Azure有SSH Public Key的地方放入就可以,如果,未來需要透過PuTTY連線,也要在此視窗中,選擇Save private Key,儲存後的附檔名為.ppk,後續必須使用私鑰的Key來跟Azure公鑰Key進行連線認證

透過以上方法就可以產生SSH Key for Azure來使用