kubernetes - 从 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 守护进程拒绝验证密码短语密钥是否有原因?
解决方案
推荐阅读
- json - 如何在结构中定义字典列表
- django - django 的 settings.py 中配置不正确的应用程序
- javascript - 从 div 内容中隐藏一些文本
- r - brglm和logistf的区别?
- css - 如何使整个背景图像响应地适合 Jumbotron
- c# - 开发人员使用哪种设计模式 Abp 框架 (abp.io)?
- python - FileNotFound 时退出程序:[Win Error 3] 出现
- python - TypeError concatenating Timestamp and 'datetime.time'
- perforce - Perforce 如何创建具有多个源到单个目标的分支规范
- r - gsub 反向引用和用空字符串替换不相同