GCloud中的Kubernetes集群与koops:公钥被拒绝



我正在使用kops在GCloud上部署一个2节点的Kubernetes集群,命令如下:

kops create cluster part1.k8s.local --zones europe-west3-a --node-count 2 --node-image ubuntu-os-cloud/ubuntu-2004-focal-v20210129 --node-size "e2-standard-2" --ssh-public-key ~/.ssh/id_rsa.pub --state ${KOPS_STATE_STORE}/ --project=${PROJECT}
kops update cluster --name part1.k8s.local --yes --admin

然后等待集群准备就绪,并使用以下命令获取其中一个节点的外部IP:

kubectl get nodes -o wide

然而,当我试图登录到节点时,我得到:

ssh -i ~/.ssh/id_rsa admin@<PUBLIC_IP>
admin@<PUBLIC_IP>: Permission denied (publickey).

检查权限节点应该能够接受SSH连接,我可以使用GCloud UI连接到虚拟机。

我做错了什么?谢谢!

答案可以在这里找到:https://github.com/kubernetes/kops/issues/10770

我在测试SSH keys的一些场景(添加,删除,覆盖等)时遇到了这个问题。

当您登录到GKE控制台时,您的ssh keys存储在~/.ssh中。如果文件夹为空,这些密钥将在您连接到VM (google_compute_engine和google_compute_engine.pub)时创建。

$ ls ~/.ssh
google_compute_engine  google_compute_engine.pub  google_compute_known_hosts  known_hosts

关于SSH Key的信息也存储在项目中。你可以在导航菜单中找到它比;计算引擎比;. 下一步选择SSH Keys选项卡查看实例SSH keys

关于SSH Keys的更多信息可以在元数据指南中的管理SSH密钥中找到。

如果你遇到这种问题,你可以从UI中删除SSH key,删除google_compute_enginegoogle_compute_engine.pub。当你想要SSH到机器时,GKE会要求你创建新的SSH密钥,Permission denied (publickey)的问题应该会被修复。

用于sshGCE的命令vm is gcloud ssh

gcloud compute ssh <instance-name> --zone <zone>

为什么?

gcloud compute ssh是ssh(1)命令的一个薄包装器,负责身份验证和将实例名称转换为IP地址。

此外,如果您在GKE上遇到其他SSH问题,您可以查看故障排除SSH指南。

最新更新