密钥对
更新时间:2024-07-02
创建密钥对
如下代码可以创建密钥对,单个用户在单region默认配额500个(创建和导入的密钥对之和)创建后的密钥对可植入实例以实现远程登录实例:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairCreateRequest;
7import com.baidubce.services.bcc.model.keypair.KeypairModel;
8
9public class CreateKeypair {
10 public static void main(String[] args) {
11 // 设置您的ak、sk和要访问的endpoint
12 String endpoint = "http://bcc.bj.baidubce.com";
13 String ak = "ak";
14 String sk = "sk";
15 // 设置默认配置
16 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
17 .withProtocol(Protocol.HTTP)
18 .withCredentials(new DefaultBceCredentials(ak, sk))
19 .withEndpoint(endpoint);
20 // 创建bcc client
21 BccClient client = new BccClient(bccClientConfiguration);
22
23 String keyName = "dcc";
24 String keyDes = "用于dcc";
25
26 KeypairCreateRequest keypairCreateRequest = new KeypairCreateRequest();
27 // 设置密钥名
28 keypairCreateRequest.setName(keyName);
29 // 设置密钥描述
30 keypairCreateRequest.setDescription(keyDes);
31 KeypairModel keypairModel = client.createKeypair(keypairCreateRequest);
32 System.out.println(keypairModel.getPublicKey());
33 }
34}
导入密钥对
如下代码可以导入创建密钥对:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairImportRequest;
7import com.baidubce.services.bcc.model.keypair.KeypairModel;
8
9public class ImportKeypair {
10 public static void main(String[] args) {
11 // 设置您的ak、sk和要访问的endpoint
12 String endpoint = "http://bcc.bj.baidubce.com";
13 String ak = "ak";
14 String sk = "sk";
15 // 设置默认配置
16 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
17 .withProtocol(Protocol.HTTP)
18 .withCredentials(new DefaultBceCredentials(ak, sk))
19 .withEndpoint(endpoint);
20 // 创建bcc client
21 BccClient client = new BccClient(bccClientConfiguration);
22
23 KeypairImportRequest requst = new KeypairImportRequest();
24 // 创建密钥对名称
25 requst.setName("keypairFromImport");
26 // 待创建的密钥对的描述,可选参数
27 requst.setDescription("self desc....");
28 // 待创建的密钥对的公钥
29 requst.setPublicKey("ssh-***");
30 KeypairModel keypairModel = client.importKeypair(requst);
31 System.out.println(keypairModel.getPublicKey());
32 }
33}
查询密钥对列表
如下代码可以查询密钥对列表:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairListRequest;
7import com.baidubce.services.bcc.model.keypair.KeypairListResponse;
8
9public class ListKeypair {
10 public static void main(String[] args) {
11 // 设置您的ak、sk和要访问的endpoint
12 String endpoint = "http://bcc.bj.baidubce.com";
13 String ak = "ak";
14 String sk = "sk";
15 // 设置默认配置
16 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
17 .withProtocol(Protocol.HTTP)
18 .withCredentials(new DefaultBceCredentials(ak, sk))
19 .withEndpoint(endpoint);
20 // 创建bcc client
21 BccClient client = new BccClient(bccClientConfiguration);
22 // 创建请求体
23 KeypairListRequest keypairListRequest = new KeypairListRequest();
24 // 每页包含的最大数量,最大数量通常不超过1000。缺省值为1000
25 keypairListRequest.setMaxKeys(1);
26 // 批量获取列表的查询的起始位置,是一个由系统生成的字符串
27 keypairListRequest.setMarker("k-gXZ7LlbS");
28 KeypairListResponse keypairListResponse = client.listKeypair(keypairListRequest);
29 System.out.println(keypairListResponse.getKeypairs());
30 }
31}
查询密钥对详情
如下代码可以查询单个密钥对的详细信息:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairDetailRequest;
7import com.baidubce.services.bcc.model.keypair.KeypairModel;
8
9public class KeypairDetail {
10 public static void main(String[] args) {
11 // 设置您的ak、sk和要访问的endpoint
12 String endpoint = "http://bcc.bj.baidubce.com";
13 String ak = "ak";
14 String sk = "sk";
15 // 设置默认配置
16 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
17 .withProtocol(Protocol.HTTP)
18 .withCredentials(new DefaultBceCredentials(ak, sk))
19 .withEndpoint(endpoint);
20 // 创建bcc client
21 BccClient client = new BccClient(bccClientConfiguration);
22 // 创建请求体
23 KeypairDetailRequest keypairDetailRequest = new KeypairDetailRequest();
24 // 设置被查询密钥对id
25 keypairDetailRequest.setKeypairId("k-***");
26 // 查询密钥对详情
27 KeypairModel keypairModel = client.keypairDetail(keypairDetailRequest);
28 System.out.println(keypairModel.getPublicKey());
29 }
30}
绑定密钥对
如下代码可以将所选密钥对(限单个)绑定到所选BCC实例(支持多台),目前一台BCC实例只能绑定一个密钥对:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairAttachRequest;
7import java.util.ArrayList;
8import java.util.List;
9
10public class AttachKeypair {
11 public static void main(String[] args) {
12 // 设置您的ak、sk和要访问的endpoint
13 String endpoint = "http://bcc.bj.baidubce.com";
14 String ak = "ak";
15 String sk = "sk";
16 // 设置默认配置
17 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
18 .withProtocol(Protocol.HTTP)
19 .withCredentials(new DefaultBceCredentials(ak, sk))
20 .withEndpoint(endpoint);
21 // 创建bcc client
22 BccClient client = new BccClient(bccClientConfiguration);
23
24 List<String> instances = new ArrayList<String>();
25 // 设置被绑定实例id,可多个
26 instances.add("i-***");
27 KeypairAttachRequest keypairAttachRequest = new KeypairAttachRequest();
28 // 设置被绑定密钥对id
29 keypairAttachRequest.setKeypairId("k-***");
30 keypairAttachRequest.setInstanceIds(instances);
31 client.attachKeypair(keypairAttachRequest);
32 }
33}
解绑密钥对
如下实例可以将所选BCC实例与它们各自绑定的密钥对解绑,此操作仅适用于Linux系统的BCC实例,且所选BCC实例必须处于运行中或关机状态:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairDetachRequest;
7
8import java.util.ArrayList;
9import java.util.List;
10
11public class DetachKeypair {
12 public static void main(String[] args) {
13 // 设置您的ak、sk和要访问的endpoint
14 String endpoint = "http://bcc.bj.baidubce.com";
15 String ak = "ak";
16 String sk = "sk";
17 // 设置默认配置
18 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
19 .withProtocol(Protocol.HTTP)
20 .withCredentials(new DefaultBceCredentials(ak, sk))
21 .withEndpoint(endpoint);
22 // 创建bcc client
23 BccClient client = new BccClient(bccClientConfiguration);
24 // 创建请求体
25 KeypairDetachRequest keypairDetachRequest = new KeypairDetachRequest();
26 // 被绑密钥ID
27 keypairDetachRequest.setKeypairId("k-***");
28 List<String> a = new ArrayList<String>();
29 a.add("i-***");
30 a.add("i-***");
31 // 实例
32 keypairDetachRequest.setInstanceIds(a);
33 // 发起解绑
34 client.detachKeypair(keypairDetachRequest);
35 }
36}
删除密钥对
如下代码可以删除密钥对,已经绑定BCC实例的密钥对无法被删除:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairDeleteRequest;
7
8public class DeleteKeypair {
9 public static void main(String[] args) {
10 // 设置您的ak、sk和要访问的endpoint
11 String endpoint = "http://bcc.bj.baidubce.com";
12 String ak = "ak";
13 String sk = "sk";
14 // 设置默认配置
15 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
16 .withProtocol(Protocol.HTTP)
17 .withCredentials(new DefaultBceCredentials(ak, sk))
18 .withEndpoint(endpoint);
19 // 创建bcc client
20 BccClient client = new BccClient(bccClientConfiguration);
21 // 构建请求体
22 KeypairDeleteRequest keypairDeleteRequest = new KeypairDeleteRequest();
23 // 被删密钥ID
24 keypairDeleteRequest.setKeypairId("k-***");
25 // 发起删除请求
26 client.deleteKeypair(keypairDeleteRequest);
27 }
28}
重命名密钥对
如下代码可以重命名密钥对:
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairRenameRequest;
7
8public class RenameKeypair {
9 public static void main(String[] args) {
10 // 设置您的ak、sk和要访问的endpoint
11 String endpoint = "http://bcc.bj.baidubce.com";
12 String ak = "ak";
13 String sk = "sk";
14 // 设置默认配置
15 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
16 .withProtocol(Protocol.HTTP)
17 .withCredentials(new DefaultBceCredentials(ak, sk))
18 .withEndpoint(endpoint);
19 // 创建bcc client
20 BccClient client = new BccClient(bccClientConfiguration);
21 // 创建请求体
22 KeypairRenameRequest keypairRenameRequest = new KeypairRenameRequest();
23 // 待重命名的密钥对id
24 keypairRenameRequest.setKeypairId("k-***");
25 // 新的密钥对名称
26 keypairRenameRequest.setName("Name2");
27 // 发起更新秘钥对名称
28 client.renameKeypair(keypairRenameRequest);
29 }
30}
更改密钥对描述
如下代码可以更改密钥对描述,若用户提供的新的描述内容为空,则删除密钥对之前的描述。
Java
1import com.baidubce.BceClientConfiguration;
2import com.baidubce.Protocol;
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bcc.BccClient;
5import com.baidubce.services.bcc.BccClientConfiguration;
6import com.baidubce.services.bcc.model.keypair.KeypairDetailRequest;
7import com.baidubce.services.bcc.model.keypair.KeypairModel;
8import com.baidubce.services.bcc.model.keypair.KeypairUpdateDescRequest;
9
10public class UpdateKeypairDescription {
11 public static void main(String[] args) {
12 // 设置您的ak、sk和要访问的endpoint
13 String endpoint = "http://bcc.bj.baidubce.com";
14 String ak = "ak";
15 String sk = "sk";
16 // 设置默认配置
17 BceClientConfiguration bccClientConfiguration = new BccClientConfiguration()
18 .withProtocol(Protocol.HTTP)
19 .withCredentials(new DefaultBceCredentials(ak, sk))
20 .withEndpoint(endpoint);
21 // 创建bcc client
22 BccClient client = new BccClient(bccClientConfiguration);
23 // 创建请求体
24 KeypairUpdateDescRequest keypairUpdateDescRequest = new KeypairUpdateDescRequest();
25 // 待更改描述的密钥对id
26 keypairUpdateDescRequest.setKeypairId("k-***");
27 // 新的密钥对描述
28 keypairUpdateDescRequest.setDescription("desc");
29 // 更新keypair的描述信息
30 client.updateKeypairDescription(keypairUpdateDescRequest);
31 }
32}