密钥对
更新时间:2024-07-02
创建密钥对
如下代码用于创建密钥对,创建后的密钥对可植入实例以实现远程登录BCC实例:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 待创建的密钥对名称
name := "bbc"
// 待创建的密钥对的描述,可选参数
description := "用于创建bbc"
args := &api.CreateKeypairArgs{
Name: name,
Description: description,
}
res, err := bccClient.CreateKeypair(args)
fmt.Println(res, err)
}
导入密钥对
如下代码用于用户自行导入创建密钥对:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 创建密钥对名称
name := "keyName"
// 待创建的密钥对的描述,可选参数
description := "description"
// 待创建的密钥对的公钥
publicKey := "ssh-***"
args := &api.ImportKeypairArgs{
Name: name,
Description: description,
PublicKey: publicKey,
}
res, err := bccClient.ImportKeypair(args)
fmt.Println(res, err)
}
绑定密钥对
如下代码可以将所选密钥对(限单个)绑定到所选BCC实例(支持多台)。 目前一台BCC实例只能绑定一个密钥对,若操作的BCC实例已经绑定密钥对,则此操作将替换该BCC实例原有的密钥对。此操作仅适用于linux系统的BCC实例,且所选BCC实例必须处于运行中或已关机状态。
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 设置被绑定实例id,可多个
instanceIds := []string{"i-***", "i-***"}
// 设置被绑定密钥对id
keypairId := "k-***"
args := &api.AttackKeypairArgs{
InstanceIds: instanceIds,
KeypairId: keypairId,
}
err := bccClient.AttachKeypair(args)
fmt.Println(err)
}
解绑密钥对
如下代码可以将所选BCC实例与它们各自绑定的密钥对解绑。 目前一台BCC实例只能绑定一个密钥对,此操作将使所选BCC实例与其通过百度云控制台操作所绑定的密钥对解绑,若该虚机不存在这种密钥对,则不进行处理。 此操作仅适用于linux系统的BCC实例,且所选BCC实例必须处于运行中或关机状态。 注: 1)用户所选BCC实例可能并未绑定任何密钥对,则此操作对该BCC实例无任何作用; 2)用户可能对所选BCC实例手动绑定了密钥对,则此操作对其手动绑定的密钥对不产生任何影响; 3)用户如若此前通过百度云控制台操作,为所选BCC实例绑定过密钥对,且该密钥对状态正常,则此操作将从该BCC实例中删除该密钥对。
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 待解绑的虚机的短id列表
instanceIds := []string{"i-***", "i-***"}
// 待解绑的密钥对id
keypairId := "k-***"
args := &api.DetachKeypairArgs{
InstanceIds: instanceIds,
KeypairId: keypairId,
}
// 发起解绑
err := bccClient.DetachKeypair(args)
fmt.Println(err)
}
删除密钥对
如下代码用于删除密钥对,已经绑定BCC实例的密钥对无法被删除:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 设置要删除的密钥对id
keypairId := "k-***"
// 构建请求体
args := &api.DeleteKeypairArgs{
KeypairId: keypairId,
}
err := bccClient.DeleteKeypair(args)
fmt.Println(err)
}
查询密钥对详情
如下代码用于查询单个密钥对的详细信息:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 设置被查询密钥对id
keypairId := "k-***"
res, err := bccClient.GetKeypairDetail(keypairId)
fmt.Println(res, err)
}
查询密钥对列表
如下代码用于查询密钥对列表:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
args := &api.ListKeypairArgs{
// 批量获取列表的查询的起始位置,是一个由系统生成的字符串
Marker: "k-***",
// 每页包含的最大数量,最大数量通常不超过1000。缺省值为1000
MaxKeys: 1,
}
res, err := bccClient.ListKeypairs(args)
fmt.Println(res, err)
}
重命名密钥对
如下代码用于重命名密钥对:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 新的密钥对名称
name := "Name3"
// 待重命名的密钥对id
keypairId := "k-***"
args := &api.RenameKeypairArgs{
Name: name,
KeypairId: keypairId,
}
err := bccClient.RenameKeypair(args)
fmt.Println(err)
}
更改密钥对描述
如下代码用于更改密钥对描述,若用户提供的新的描述内容为空,则删除所操作虚机的描述:
package main
import (
"fmt"
"github.com/baidubce/bce-sdk-go/services/bcc"
"github.com/baidubce/bce-sdk-go/services/bcc/api"
)
func main() {
// 设置您的ak、sk和要访问的endpoint
ak := "ak"
sk := "sk"
endpoint := "http://bcc.bj.baidubce.com"
// 创建bcc client
bccClient, _ := bcc.NewClient(ak, sk, endpoint)
// 设置要更新的密钥对描述
description := "DESC"
// 设置要更新描述的密钥对id
keypairId := "k-***"
args := &api.KeypairUpdateDescArgs{
Description: description,
KeypairId: keypairId,
}
// 更新keypair的描述信息
err := bccClient.UpdateKeypairDescription(args)
fmt.Println(err)
}