gpt4 book ai didi

docker - 如何授予 Openshift 容器的非特权用户对/root/.ssh 的读取访问权限以进行 spring 云配置服务器 SSH 身份验证?

转载 作者:行者123 更新时间:2023-12-02 12:11:23 27 4
gpt4 key购买 nike

我想将 SSH 身份验证与 Spring Boot 云配置服务器一起使用。到目前为止,我一直在 docker swarm 上的 docker 容器中运行配置服务器,没有任何问题。
我的组织最近决定将所有内容都迁移到 Openshift 3。我正在尝试部署配置服务器,但是在使用 SSH 对 Gitlab 进行身份验证时遇到了问题。在 docker 镜像中,我在将公共(public)和私有(private) SSH key 复制到/root/.ssh 之前使用它,它可以工作,但在我的 Fabric8 在 Openshift 上生成的 S2I 镜像中它根本不起作用。
在 Openshift 中,我创建了一个名为 cfgssh 的通用 kubernetes 密码。其中包含 id_rsa 和 id_rsa.pub 键(base64 编码)
然后我在我的部署配置/容器中将 secret 安装到/root/.ssh。这不起作用我猜测应用程序运行的用户没有对/root/.ssh 的读取权限?这总是以 configServer 在身份验证异常后崩溃而告终。
我能够在本地和 docker swarm 上运行 spring cloud configserver 而没有任何身份验证问题,所以它绝对不是云 configserver 配置问题。
有没有其他人遇到/找到解决这个问题的方法?
我的配置如下。
Maven fabric8部署片段:

spec:
replicas: 4
template:
spec:
containers:
- env:
- name: SPRING_PROFILES_ACTIVE
value: qa
volumeMounts:
- name: cfgssh
mountPath: ~/.ssh
readOnly: true
livenessProbe:
httpGet:
path: /actuator/health
port: 8080
scheme: HTTPS
initialDelaySeconds: 180
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /actuator/health
port: 8080
scheme: HTTPS
initialDelaySeconds: 60
timeoutSeconds: 5
resources:
requests:
memory: "64Mi"
limits:
memory: "256Mi"
env:
- name: JAVA_OPTIONS
value: "-Xms64M -Xmx256M"
volumes:
- name: cfgssh
secret:
secretName: cfgssh
items:
- key: id_rsa
path: id_rsa
- key: id_rsa.pub
path: id_rsa.pub

最佳答案

假设它在容器中使用 ssh 客户端(您没有指定正在使用的镜像),我的猜测是您运行的任何用户都不是 root .您可以通过执行来检查容器的默认用户是什么

$ kubectl exec -it <pod-name> -c <container-name> sh
$ whoami
话虽如此,安装在 ~/.ssh应该可以工作(您在执行到 pod/容器时检查)。所以我认为您的 id_rsa 可能有错误的权限。文件。 (它们必须是 0600 )。确保在您的 volumes部分:
      volumes:
- name: cfgssh
secret:
secretName: cfgssh
defaultMode: 0600 <= add this
items:
- key: id_rsa
path: id_rsa
- key: id_rsa.pub
path: id_rsa.pub
引用: secrets file permissions .

关于docker - 如何授予 Openshift 容器的非特权用户对/root/.ssh 的读取访问权限以进行 spring 云配置服务器 SSH 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62761677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com