首页 > 解决方案 > 从 Kubernetes pod 连接到远程主机时 ssh 权限被拒绝

问题描述

我正在尝试在指定身份文件时从 pod SSH 到远程服务器。这失败并出现以下错误:

admin@123.123.123.123: Permission denied (publickey).

我已经确定我可以从我的本地主机使用相同的公钥和私钥进行连接。只有当我尝试从 pod 容器内的 bash shell 连接时,它才会失败。我的工作定义如下:

---
apiVersion: batch/v1
kind: Job
metadata:
  name: {{ .Release.Name }}-volumes-population-{{ .Release.Revision }}
spec:
  template:
    spec:
      containers:
      - name: populate-volumes
        image: {{ .Values.gitlab.image_repository.repository }}/{{ .Values.phpfpm.image.name }}:{{ .Values.phpfpm.image.version }}
        imagePullPolicy: IfNotPresent
        ports:
        - name: ssh
          containerPort: 22
        args:
        - /bin/bash
        - -c
        - |
            echo "Testing ssh connection..."
            ssh -i/etc/ssh/hetzner_box admin@123.123.123.123
        volumeMounts:
        - name: hetzner-box-identity
          mountPath: /etc/ssh/hetzner_box.pub
          subPath: .pub
        - name: hetzner-box-identity
          mountPath: /etc/ssh/hetzner_box
          subPath: .key
      volumes:
      - name: hetzner-box-identity
        secret:
          secretName: {{ .Release.Name }}-hetzner-box-identity
          defaultMode: 256
          items:
          - key: .pub
            path: .pub
          - key: .key
            path: .key

编辑 1:
经过进一步询问,我设法注意到密钥对的密码短语较少。我设法使用受密码保护的不同密钥对登录。我的目标是自动化,因此拥有密码保护密钥是不可接受的。ssh 守护进程拒绝验证密码短语密钥是否有原因?

标签: kubernetesssh

解决方案


推荐阅读