2017-01-24 96 views
0

我試圖自動化該過程來訂購一個linux實例,並且還處理實例級別的ssh密鑰。自動爲另一個用戶創建/生成SSH密鑰對

是否有可能使用gcloud命令行爲其他用戶生成ssh密鑰文件(不需要ssh'ing,即自動生成密鑰)。

對於Windows情況下,它看起來像這樣: 我自動化的實例創建 我自動執行Windows實例生成Windows密碼 我通過電子郵件發送新生成的密碼請求用戶

對於Linux: 我有自動化的Linux實例創建 但是,我下一步要爲另一個特定的用戶名生成一個ssh密鑰,以便我可以將電子郵件附加到請求用戶。用戶無權訪問GCE儀表板。

隨着AWS的簡單,因爲然後我在實例之前創建密鑰並可以附加這些密鑰,但不知道如何解決與GCE的自動化問題。

幫助?

感謝

回答

0

看看爲"Adding and Removing SSH Keys"的指示,總結如下:

$ # Creating a new SSH key-pair with the correct format (`USERNAME` is your Google username 
$ ssh-keygen -t rsa -f ~/.ssh/[KEY_FILE_NAME] -C [USERNAME] 
$ # Edit the file. It should look like the following line: 
$ # [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME] 
$ vim ~/.ssh/[KEY_FILE_NAME] 
$ # Get the existing metadata for the instance: 
$ gcloud compute instances describe [INSTANCE] 
$ # Look for the "metadata" -> "ssh-keys" entry and merge your new SSH key in. 
$ vim all_keys.txt # This is where the merged key list goes 
$ gcloud compute instances add-metadata [INSTANCE_NAME] \ 

--metadata,從文件SSH密鑰= all_keys.txt

該鏈接包含先進有關添加過期時間的說明,將密鑰添加到整個項目,阻止項目範圍內的密鑰在實例上工作,使用Cloud Console代替gcloud,在Windows上執行此操作等。

也就是說,我希望在發送SSH私鑰時給予警告。

+0

嗨Zachary, 感謝您的回答。我忘了提及的是,我正在Windows Server上運行gcloud sdk(和PowerShell cmdlet),而不是Linux。 從gcloud命令通過設置後的winkeygen.exe進行SSH連接時,似乎所有內容都會自動生成。但文檔沒有說明如何手動使用。 在生成SSH密鑰時是否需要使用〜\ .ssh \ google_compute_engine(C:\ Users \ [USER_NAME] \。ssh \ google_compute_engine) – Maekee

+0

我很困惑:'C:\ Users [USER_NAME] \。ssh \ google_compute_engine' *是一個SSH密鑰。如何在生成SSH密鑰時使其可用? –

+0

是的,我錯過了這個SSH密鑰。這個SSH密鑰是項目範圍的關鍵嗎?當我在自動化中創建Linux實例時,我想要一個只適用於該實例的特定鍵。所以我可以將SSH密鑰發送給請求用戶。我不是SSH/Certificates中的導出,所以請耐心等待:) – Maekee