「OpenSSH」- 在 Kubernetes 中,部署 OpenSSH 服务

问题描述

某个网络是隔离的(出于安全原因),所以其中的主机、服务(MySQL Redis)都是对外隔离的,无法直接访问。

通过 SSH Server 来作为跳板机,通过 SSH Tunnel 来访问,所以我们才会在 Kubernetes 中部署 SSH 服务。

该笔记将记录:在 Kubernetes 中,如何部署 OpenSSH 服务,以及相关问题的解决方法。

解决方案

通过 OpenSSH Server 镜像

镜像:linuxserver/openssh-server – Docker Image | Docker Hub

通过 Helm 部署

ssh-bastion 1.0.0 · helm/t3n
helm-charts/ssh-bastion at master · t3n/helm-charts
bash – Openssh Private Key to RSA Private Key – Stack Overflow

但为了简便,我们通过 Helm 进行部署:ssh-bastion 1.0.0 · helm/t3n

ssh-keygen -p -N "" -m pem -f /path/to/host-key                                 # 生成 Host Key(RSA PRIVATE KEY)

# users.dummy:指定 SSH 公钥
# host.keys:用于创建 Host Key
helm install ssh-bastion t3n/ssh-bastion                  \
    --set users.dummy="$(cat /home/k4nz/.ssh/id_rsa.pub)" \
    --set host.keys="$(cat   /path/to/host-key)"