如何对k8s中docker registry secret中保存的docker的用户名、密码进行解密?

发布时间 2023-05-22 16:21:45作者: 拨云3

在k8s的docker registry secret中,保存的是docker的用户名、密码的信息,并且是使用加密的方式进行保存的

 

[root@nccztsjb-node-11 ~]# kubectl get secret -n yonbip c87e2267-1001-4c70-bb2a-ab41f3b81aa3  -o yaml
apiVersion: v1
data:
  .dockerconfigjson: eyJhdXRocyI6eyJyZWcueXl1YXAubG9jYWw6ODEiOnsiYXV0aCI6IllXUnRhVzQ2Y1RkS1JGWnJVRUFoTVY1SCJ9fX0=
kind: Secret
metadata:
  creationTimestamp: "2023-05-22T06:34:24Z"
  name: c87e2267-1001-4c70-bb2a-ab41f3b81aa3
  namespace: yonbip
  resourceVersion: "45111"
  selfLink: /api/v1/namespaces/yonbip/secrets/c87e2267-1001-4c70-bb2a-ab41f3b81aa3
  uid: b587de11-f89f-4164-abf6-4c297e84e72d
type: kubernetes.io/dockerconfigjson

 

 

.dockerconfigjson: eyJhdXRocyI6eyJyZWcueXl1YXAubG9jYWw6ODEiOnsiYXV0aCI6IllXUnRhVzQ2Y1RkS1JGWnJVRUFoTVY1SCJ9fX0=

 

如果你想要知道,保存的用户名、密码到底是什么,该如何操作呢?

 

非常的简单。

 

因为,docker registry secret使用的是base64的编码方式,进行反解码就可以了

 

方法如下...

 

1、解析docker registry的地址

 

.dockerconfigjson后面的数据进行解码

[root@nccztsjb-node-11 ~]# echo "eyJhdXRocyI6eyJyZWcueXl1YXAubG9jYWw6ODEiOnsiYXV0aCI6IllXUnRhVzQ2Y1RkS1DGWnJVxUFoTVY1SCJ9fX0=" | base64 -d
{"auths":{"reg.yyuap.local:81":{"auth":"YWRtaW46cTdKRFZXUEchMV5H"}}}[root@nccztsjb-node-11 ~]# 

 

 

 

就获取到了docker仓库的地址:reg.yyuap.local:81

 

{"auths":{"reg.yyuap.local:81":{"auth":"YWRtaW4cTdxKRFZrUEAhMV5H"}}}

 

这个时候,auth就是docker仓库的用户名和密码信息的加密,还是base64编码

 

2、解析用户名、密码

 

将auth:后面的值进行解密

[root@nccztsjb-node-11 ~]# echo "YWRtaW46cTdKRFZrUEAhMV5H" | base64 -d
admin:q73DVxP@!1^G[root@nccztsjb-node-11 ~]# 
[root@nccztsjb-node-11 ~]# 

 

得到的就是连接镜像仓库使用的用户名、密码信息

 

admin:q73DVxP@!1^G

 

是不是,非常的简单 ......