使用密码 SSH 密钥推送
Push using passphrased SSH key
我在 OpenShift 3.11 (Kubernetes 1.11) 上有一个 Pod。从那个 POD,我需要使用密码短语 SSH 密钥推送到 GitHub 存储库。
现在我可以创建一个秘密了:
apiVersion: v1
data:
known_hosts: Yml...
passphrase: abcde...
ssh-privatekey: LS0...
kind: Secret
metadata:
name: git-ssh-mirror
namespace: mynamespace
type: kubernetes.io/ssh-auth
不过我不知道如何以某种方式连接这个 Secret,使 Pod 可以同时使用私钥和密码短语。
任何指点将不胜感激。
创建的 git-ssh-mirror
秘密的 data
部分中的 passphrase
和 ssh-privatekey
字段可以安装在容器内:
- Environment variables,或
-
- 安装秘密作为环境变量
GIT_SSH_PASSPHRASE
和GIT_SSH_PRIVATEKEY
在容器内:
...
kind: Pod
...
spec:
containers:
- name: mycontainer
image: myimage
env:
- name: GIT_SSH_PASSPHRASE
valueFrom:
secretKeyRef:
name: git-ssh-mirror
key: passphrase
- name: GIT_SSH_PRIVATEKEY
valueFrom:
secretKeyRef:
name: git-ssh-mirror
key: ssh-privatekey
现在,使用容器内的环境变量GIT_SSH_PASSPHRASE
和GIT_SSH_PRIVATEKEY
分别获取推送到GitHub仓库所需的SSH密码和私钥。
- 容器内的 文件 安装秘密:
...
kind: Pod
...
spec:
containers:
- name: mycontainer
image: myimage
volumeMounts:
- name: git-ssh-secrets
mountPath: "/etc/mypath"
readOnly: true
volumes:
- name: git-ssh-secrets
secret:
secretName: git-ssh-mirror
现在,创建的 git-ssh-mirror
秘密中 passphrase
和 ssh-privatekey
的值被 base-64
解码并存储在只读文件中 /etc/mypath/passphrase
和 /etc/mypath/ssh-privatekey
分别在容器内。使用它们推送到 GitHub 存储库。
如果密码或 SSH 私钥需要 base-64
解码,请使用 base64 --decode
命令。
我在 OpenShift 3.11 (Kubernetes 1.11) 上有一个 Pod。从那个 POD,我需要使用密码短语 SSH 密钥推送到 GitHub 存储库。 现在我可以创建一个秘密了:
apiVersion: v1
data:
known_hosts: Yml...
passphrase: abcde...
ssh-privatekey: LS0...
kind: Secret
metadata:
name: git-ssh-mirror
namespace: mynamespace
type: kubernetes.io/ssh-auth
不过我不知道如何以某种方式连接这个 Secret,使 Pod 可以同时使用私钥和密码短语。
任何指点将不胜感激。
创建的 git-ssh-mirror
秘密的 data
部分中的 passphrase
和 ssh-privatekey
字段可以安装在容器内:
- Environment variables,或
-
- 安装秘密作为环境变量
GIT_SSH_PASSPHRASE
和GIT_SSH_PRIVATEKEY
在容器内:
... kind: Pod ... spec: containers: - name: mycontainer image: myimage env: - name: GIT_SSH_PASSPHRASE valueFrom: secretKeyRef: name: git-ssh-mirror key: passphrase - name: GIT_SSH_PRIVATEKEY valueFrom: secretKeyRef: name: git-ssh-mirror key: ssh-privatekey
现在,使用容器内的环境变量
GIT_SSH_PASSPHRASE
和GIT_SSH_PRIVATEKEY
分别获取推送到GitHub仓库所需的SSH密码和私钥。- 容器内的 文件 安装秘密:
... kind: Pod ... spec: containers: - name: mycontainer image: myimage volumeMounts: - name: git-ssh-secrets mountPath: "/etc/mypath" readOnly: true volumes: - name: git-ssh-secrets secret: secretName: git-ssh-mirror
现在,创建的
git-ssh-mirror
秘密中passphrase
和ssh-privatekey
的值被base-64
解码并存储在只读文件中/etc/mypath/passphrase
和/etc/mypath/ssh-privatekey
分别在容器内。使用它们推送到 GitHub 存储库。 - 安装秘密作为环境变量
如果密码或 SSH 私钥需要 base-64
解码,请使用 base64 --decode
命令。