无法通过 SSH 连接到 Google Cloud Dataproc 的主节点,但可以通过 SSH 连接到 Compute Engine 虚拟机

Unable to ssh to master node of Google Cloud Dataproc, but can ssh to Compute Engine VM

我可以通过 ssh 进入 Google 云计算引擎 VM,但无法通过 ssh 进入 Google Cloud Dataproc 集群的主节点。

具体来说,

gcloud compute ssh my-vm

工作正常,而

gcloud compute ssh mycluster-m

失败并显示错误消息:

admin@IP.ADDRESS: Permission denied (publickey).
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

计算引擎虚拟机和 Dataproc 集群在同一个项目中。我从错误消息中了解到它与 ssh 密钥有关,但我不确定如何修复它 - 我通过云控制台检查了项目中的 ssh 密钥,它是正确的,并尝试了通常的 gcloud auth login 重置 gcloud 项目登录详细信息。

关于如何解决这个问题的任何提示?

编辑: 我正在尝试从我的机​​器而不是云控制台进行 ssh - 这是一个好点,我会尝试一下,看看是否可行。但最后我想用它从我的本地计算机连接到 Jupyter notebook,所以这并不能解决无法从我的机器通过 SSH 连接到 VM 的问题。

关于创建 Dataproc 集群的命令,我使用了 hail dataproc python 库中的工具,但这些基本上只是 gcloud compute 命令的便利外壳,这就是失败之处.但是我用来创建 Dataproc 集群的命令是:

gcloud beta dataproc clusters create \
    test \
    --image-version=1.4-debian9 \
    --properties=^|||^spark:spark.task.maxFailures=20|||spark:spark.driver.extraJavaOptions=-Xss4M|||spark:spark.executor.extraJavaOptions=-Xss4M|||spark:spark.speculation=true|||hdfs:dfs.replication=1|||dataproc:dataproc.logging.stackdriver.enable=false|||dataproc:dataproc.monitoring.stackdriver.enable=false|||spark:spark.driver.memory=41g \
    --initialization-actions=gs://hail-common/hailctl/dataproc/0.2.53/init_notebook.py \
    --metadata=^|||^WHEEL=gs://hail-common/hailctl/dataproc/0.2.53/hail-0.2.53-py3-none-any.whl|||PKGS=aiohttp>=3.6,<3.7|aiohttp_session>=2.7,<2.8|asyncinit>=0.2.4,<0.3|bokeh>1.1,<1.3|decorator<5|dill>=0.3.1.1,<0.4|gcsfs==0.2.1|humanize==1.0.0|hurry.filesize==0.9|nest_asyncio|numpy<2|pandas>0.24,<0.26|parsimonious<0.9|PyJWT|python-json-logger==0.1.11|requests>=2.21.0,<2.21.1|scipy>1.2,<1.4|tabulate==0.8.3|tqdm==4.42.1|google-cloud-storage==1.25.* \
    --master-machine-type=n1-highmem-8 \
    --master-boot-disk-size=100GB \
    --num-master-local-ssds=0 \
    --num-preemptible-workers=0 \
    --num-worker-local-ssds=0 \
    --num-workers=2 \
    --preemptible-worker-boot-disk-size=40GB \
    --worker-boot-disk-size=40GB \
    --worker-machine-type=n1-standard-8 \
    --initialization-action-timeout=20m \
    --labels=creator=my_name \
    --max-idle=10m

原来问题是集群在集群主 VM 上创建了一个名为 my_username 的新帐户,但我以名为 'admin' 的用户身份登录到我的笔记本电脑。所以在目的地的账户名和密钥不匹配,所以登录失败。

可以通过在 gcloud 命令中添加用户名来修复:

gcloud compute ssh my_username@mycluster-m

虽然我仍然不太明白为什么 dataproc VM 和计算引擎 VM 的 ssh 密钥不同,但如果有人能启发我,我会很高兴。