2017-03-01 74 views
0

我試圖從使用jclouds的java代碼啓動Google計算實例。它主要工作,但是我想使用我定義的項目範圍的SSH密鑰,而不是讓jclouds生成新的用戶/密鑰憑證。Google使用jclouds計算項目範圍的SSH密鑰

據這裏的自述 - https://github.com/apache/jclouds/tree/master/providers/google-compute-engine

對於一個實例是ssable以下中的一個必須發生:1 - 該項目的元數據的充分建立「sshKeys」條目和相應的私鑰當調用createNodesInGroup時,在GoogleComputeEngineTemplateOptions中提供。 2 - 提供了具有足夠的公鑰和私鑰的GoogleComputeEngineTemplateOptions實例。

我想要做1)以上。我已經正確配置了項目的元數據(我可以使用它來連接到沒有jclouds生成的憑據的手動創建的實例),但我無法確定如何將此密鑰提供給GoogleComputeEngineTemplateOptions?

GoogleComputeEngineTemplateOptions.Builder.installPrivateKey(String key)GoogleComputeEngineTemplateOptions.Builder.overrideLoginPrivateKey(String key)都不起作用。

該文檔相當稀疏 - 任何人都知道該怎麼做?

回答

0

如果您沒有提供jcloud,默認情況下會創建一個密鑰。您可以使用以下提供您的身份驗證私鑰並告訴jclouds不生成新的:

TemplateOptions opts = computeService.templateOptions() 
    .as(GoogleComputeEngineTemplateOptions.class) 
    .overrideLoginPrivateKey(privateKey) 
    .autoCreateKeyPair(false); 
+0

這樣做的竅門,謝謝。 – bobsyouruncle