如何对k8s中docker registry secret中保存的docker的用户名、密码进行解密?
在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
是不是,非常的简单 ......