Azure - 以编程方式使用ssl公钥创建vm

时间:2016-05-30 08:53:22

标签: java azure azure-virtual-machine azure-java-sdk

Create VM ssh public key

我尝试使用azure java SDK以编程方式使用ssh公钥创建虚拟机。 我看到create vm example,我们可以看到:

request.getOsProfile().setAdminUsername(adminUsername);
request.getOsProfile().setAdminPassword(adminPassword);

我的问题是 - 为了使用附加图像中的SSH公钥创建VM,我应该为此OsProfile设置什么?

2 个答案:

答案 0 :(得分:2)

您可以在LinuxConfiguration中设置OSProfile属性。以下是示例代码:

// Set up SSH public key
String fullStorePath = " ~/.ssh/authorized_keys";
String sshKeyData = "you-ssh-key-data";

SshPublicKey sshPublicKey = new SshPublicKey();
sshPublicKey.setPath(fullStorePath);
sshPublicKey.setKeyData(sshKeyData);

// SShConfiguration
ArrayList<SshPublicKey> keyList = new ArrayList<SshPublicKey>();
keyList.add(sshPublicKey);

SshConfiguration sshConfig = new SshConfiguration();
sshconfig.setPublicKeys(keyList);

// Linux Configuration
Bool shouldDisablePasswordAuthentication = False;
LinuxConfiguration linuxConfig = new LinuxConfiguration();
linuxConfig.setSsh(sshConfig);
linuxConfig.setDisablePasswordAuthentication(shouldDisablePasswordAuthentication);

// set your OSProfile now
request.getOsProfile().setLinuxConfiguration(linuxConfig);

// you code goes here

答案 1 :(得分:1)

根据REST API Create or update a VM的请求json正文的属性linuxConfiguration,正如@Steven所说,它是正确的,非常适合设置SshConfiguration&amp; LinuxConfigurationOSProfile

感谢Steven的分享。