GCloud 中带有 koops 的 Kubernetes 集群:public 密钥被拒绝
Kubernetes cluster in GCloud with koops: public key denied
我正在使用 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 连接到 VM。
我做错了什么?谢谢!
我在使用 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
的信息也存储在您的项目中。您可以在 Navigation Menu > Compute Engine > Metadata 中找到它。接下来 select SSH Keys 选项卡 查看实例 SSH keys
.
有关 SSH Keys
的其他信息可以在 Managing SSH keys in metadata 指南中找到。
如果你会遇到这种问题,你可以从UI中删除SSH key
,删除google_compute_engine
和google_compute_engine.pub
。当您想 SSH
机器时,GKE 会要求您创建新的 SSH 密钥并解决 Permission denied (publickey)
的问题。
应该用于 ssh
到 GCE
vm 的命令是 gcloud ssh
gcloud compute ssh <instance-name> --zone <zone>
为什么?
gcloud compute ssh is a thin wrapper around the ssh(1) command that takes care of authentication and the translation of the instance name into an IP address.
此外,如果您在 GKE
上遇到其他 SSH
问题,您可以查看 Troubleshooting SSH 指南。
我正在使用 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 连接到 VM。
我做错了什么?谢谢!
我在使用 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
的信息也存储在您的项目中。您可以在 Navigation Menu > Compute Engine > Metadata 中找到它。接下来 select SSH Keys 选项卡 查看实例 SSH keys
.
有关 SSH Keys
的其他信息可以在 Managing SSH keys in metadata 指南中找到。
如果你会遇到这种问题,你可以从UI中删除SSH key
,删除google_compute_engine
和google_compute_engine.pub
。当您想 SSH
机器时,GKE 会要求您创建新的 SSH 密钥并解决 Permission denied (publickey)
的问题。
应该用于 ssh
到 GCE
vm 的命令是 gcloud ssh
gcloud compute ssh <instance-name> --zone <zone>
为什么?
gcloud compute ssh is a thin wrapper around the ssh(1) command that takes care of authentication and the translation of the instance name into an IP address.
此外,如果您在 GKE
上遇到其他 SSH
问题,您可以查看 Troubleshooting SSH 指南。