无法ssh到Google Cloud Dataproc的主节点,但可以ssh到计算引擎VM

无法ssh到Google Cloud Dataproc的主节点,但可以ssh到计算引擎VM,ssh,google-cloud-platform,google-compute-engine,gcloud,google-cloud-dataproc,Ssh,Google Cloud Platform,Google Compute Engine,Gcloud,Google Cloud Dataproc,我在sshing到googlecloudcomputeengine虚拟机上没有问题,但是我无法ssh到googleclouddataproc集群的主节点 具体来说, gcloud compute ssh my-vm 很好,但是 gcloud compute ssh mycluster-m 失败,并显示错误消息: admin@IP.ADDRESS: Permission denied (publickey). ERROR: (gcloud.compute.ssh) [/usr/bin/ssh]

我在sshing到googlecloudcomputeengine虚拟机上没有问题,但是我无法ssh到googleclouddataproc集群的主节点

具体来说,

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].
计算引擎VM和Dataproc集群位于同一个项目中。我从错误消息中了解到这与ssh密钥有关,但我不确定如何修复它-我通过云控制台检查了项目中的ssh密钥,结果是正确的,并尝试了通常的
gcloud auth login
重置gcloud项目登录详细信息

有关于如何解决这个问题的提示吗

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

关于创建Dataproc集群的命令,我使用python库中的工具,但这些基本上只是gcloud计算命令的方便shell,这就是失败的地方。但是我用来创建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

gcloud beta dataproc群集创建\
试验\
--图像版本=1.4-debian9\
--属性=^ | | | ^ spark:spark.task.maxFailures=20 | | | | spark.driver.extraJavaOptions=-Xss4M | | spark.spark.spark=true | | | | hdfs.replication=1 | | | | | dataproc:dataproc:dataproc.logging.stackdriver.enable\
--初始化操作=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,=2.7,=0.2.4,1.1,问题在于集群在集群主虚拟机上创建了一个名为my|username的新帐户,但我是以名为“admin”的用户身份登录到我的笔记本电脑上的。因此,目标帐户名和密钥不匹配,因此登录失败

可以通过将用户名添加到gcloud命令来修复此问题:

gcloud compute ssh my_username@mycluster-m

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

这看起来不像是一个问题。对不起,我找到了其他关于通过ssh在堆栈溢出(例如)上连接Google云计算引擎的答案,让我知道是否有更合适的位置放置它。您可以共享一个用于创建Dataproc集群的命令吗?您是否指定了任何自定义服务帐户?当您尝试从计算机或在云控制台中使用ssh时,是否会出现此问题?