使用身份密钥连接到远程主机(其他身份验证方法?)

Posted

技术标签:

【中文标题】使用身份密钥连接到远程主机(其他身份验证方法?)【英文标题】:Connecting to remote master with identity key (other auth methods?) 【发布时间】:2022-01-18 16:05:25 【问题描述】:

我正在尝试在远程主机上运行 spark-submit,但问题是 - 远程主机需要身份文件。

我的命令:

spark-submit --master spark://<ip_remote_master>:7077 --conf spark.sql.files.ignoreCorruptFiles=true --conf spark.sql.files.ignoreMissingFiles=true --driver-memory 1g --executor-memory 2g run_script.py

我得到的错误:

21/12/15 13:01:19 INFO StandaloneAppClient$ClientEndpoint: Connecting to master spark://<ip_remote_master>:7077...
21/12/15 13:01:20 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master <ip_remote_master>:7077
org.apache.spark.SparkException: Exception thrown in awaitResult:
        at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:301)
        at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
        at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:101)
        at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:109)
        at org.apache.spark.deploy.client.StandaloneAppClient$ClientEndpoint$$anon$1.run(StandaloneAppClient.scala:107)

我尝试使用相关的 *.pem 文件将 &lt;ip_remote_master&gt; 添加到 .ssh/config,但我想这是死路一条,因为连接到 master 的 spark 并不是真正的 ssh 类型的过程。

我怎样才能让它工作,同时保持我的远程主机的身份验证?

我认为一些无关紧要的事情,因为我正在寻找与云无关的解决方案 - 本地 = aws EC2,远程 = aws EMR(我可以从一个到另一个 ssh)。

【问题讨论】:

【参考方案1】:

听起来您正在为自己的安全性而努力,实际上您应该查看sparks security。简短的回答是独立(主人/工人)是最需要保护的体力劳动。一般来说:

为网络安全配置端口 一般来说,一个 Spark 集群和它的服务是不部署的 在公共互联网上。它们通常是私人服务,并且 只能在组织的网络内访问 部署 Spark。访问 Spark 服务使用的主机和端口 应仅限于需要访问服务的源主机。

这基本上是在告诉您使用网络分区/网络安全而不是使用“身份密钥”。您可以加密通信内容并限制谁可以与谁通信,但是您需要在机器之间打开端口才能使它们能够工作。如果您需要安全性,我会使用 Yarn 设置 EMR 集群,然后对集群进行 Kerberize。那你就很安全了。

【讨论】:

很公平,谢谢!

以上是关于使用身份密钥连接到远程主机(其他身份验证方法?)的主要内容,如果未能解决你的问题,请参考以下文章

无法在远程系统上使用 Windows 身份验证连接到 ms sql server

通过***通过Windows身份验证连接到sql [关闭]

使用 pysftp 连接到 SFTP 服务器时出现“加载主机密钥失败”警告

远程桌面连接win7 无法验证此远程计算机的身份 由于安全证书存在问题,因此远程计算机无法通过身份验证

windows 2008 R2 出现身份验证错误。 无法连接到本地安全机构

连接到多个 mongo db 主机并在 spring boot 中使用不同的数据库进行身份验证