我试图在服务器a和b上安装hbase(ubuntu 18.04)
为此,我使用安装在服务器a上的cdm(cdm6.3.1~1466458.ubuntu1804)来处理服务器a和b上hbase的安装。
但在“安装代理”步骤中出现问题,向导显示以下错误消息“用尽可用的身份验证方法”。
我在cloudera论坛上找到了一些帖子,上面提到nopasswd要添加到服务器b的sudoers文件中,但是在我的例子中,我已经在命令行中建立了从服务器a到服务器b的ssh连接,并且运行了一个sudo命令,没有任何密码,所以我认为我的服务器配置正确。
准确地说,我尝试使用私钥连接服务器,我已使用以下命令在服务器a中生成密钥对:
ssh-keygen -t rsa
并在一次添加后生成文件的内容 .ssh/id_rsa.pub
进入 .ssh/authorized_keys
服务器b的文件重试后我得到相同的结果。
我在日志文件中找到此跟踪:
2020-01-02 09:48:39,559 WARN NodeConfiguratorThread-22-0:com.cloudera.server.cmf.node.NodeConfigurator: Could not authenticate to SERVER_B net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods at net.schmizz.sshj.SSHClient.auth(SSHClient.java:232) at net.schmizz.sshj.SSHClient.auth(SSHClient.java:208) at com.cloudera.server.cmf.node.NodeConfigurator.connect(NodeConfigurator.java:416) at com.cloudera.server.cmf.node.NodeConfigurator.configure(NodeConfigurator.java:1028) at com.cloudera.server.cmf.node.NodeConfigurator.run(NodeConfigurator.java:1106) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
Caused by: net.schmizz.sshj.userauth.UserAuthException: Problem getting public key from PKCS8KeyFile{resource=[PrivateKeyStringResource]} at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:46) at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:62) at net.schmizz.sshj.userauth.method.AuthPublickey.buildReq(AuthPublickey.java:81) at net.schmizz.sshj.userauth.method.AbstractAuthMethod.request(AbstractAuthMethod.java:63) at net.schmizz.sshj.userauth.UserAuthImpl.authenticate(UserAuthImpl.java:68) at net.schmizz.sshj.SSHClient.auth(SSHClient.java:226) ... 9 more
Caused by: java.io.IOException: unrecognised object: OPENSSH PRIVATE KEY at org.bouncycastle.openssl.PEMParser.readObject(Unknown Source) at net.schmizz.sshj.userauth.keyprovider.PKCS8KeyFile.readKeyPair(PKCS8KeyFile.java:132) at net.schmizz.sshj.userauth.keyprovider.PKCS8KeyFile.getPublic(PKCS8KeyFile.java:78) at net.schmizz.sshj.userauth.method.KeyedAuthMethod.putPubKey(KeyedAuthMethod.java:44)
... 14 more
有人有办法帮我吗?
2条答案
按热度按时间gr8qqesn1#
我碰到了同样的问题,结果
ssh-keygen
使用创建私钥文件BEGIN OPENSSH PRIVATE KEY
cloudera使用的java库不知道如何解析。你可以用openssl
命令如下:不像
ssh-keygen
这不会给你所需要的公钥,以及内置的openssl
从私钥获取公钥的命令不是cloudera接受的格式。为此,你可以使用ssh-keygen
像这样:4xy9mtcn2#
所以我找到了问题的根源。我需要从服务器b上的服务器a添加pub密钥,但我也需要从服务器b添加到服务器a。这就是全部