我有一个主从集群。 我正在设立cloudera经理。
在主设备上,我使用以下方法创build了一个无密码的密钥。
ssh-keygen -f id_rsa -t rsa -N '' eval `ssh-agent` ssh-add ~/.ssh/id_rsa
然后我把钥匙放在所有的奴隶上。
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
从主人我可以ssh没有密码。 它工作很好。
现在我需要一个公钥来进行身份validation。 关键是什么? 那是id_rsa.pub? 我必须进入一个浏览器的身份validation公钥的位置。 当我使用id_rsa.pub时,我得到了这个错误。 但是使用这个键可以让我在没有密码的情况下进入任何其他的从机。
No provider available for Unknown key file You may connect via password or public-key authentication for the user selected above. 2013-01-27 03:34:49,832 INFO [1736878096@scm-web-86:node.NodeConfiguratorService@198] Retrying configurator with id 3 2013-01-27 03:34:49,834 INFO [1736878096@scm-web-86:node.NodeConfiguratorService@179] Submitted configurator for 103.4.112.102 with id 4 2013-01-27 03:34:49,836 INFO [NodeConfiguratorThread-4-4:node.NodeConfiguratorProgress@482] 103.4.112.102: Transitioning from INIT (PT0.002S) to CONNECT 2013-01-27 03:34:49,837 INFO [NodeConfiguratorThread-4-4:transport.TransportImpl@152] Client identity string: SSH-2.0-SSHJ_0_8 2013-01-27 03:34:49,844 INFO [NodeConfiguratorThread-4-4:transport.TransportImpl@161] Server identity string: SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1 2013-01-27 03:34:49,844 INFO [NodeConfiguratorThread-4-4:transport.KeyExchanger@195] Sending SSH_MSG_KEXINIT 2013-01-27 03:34:49,845 INFO [reader:transport.KeyExchanger@357] Received SSH_MSG_KEXINIT 2013-01-27 03:34:49,916 INFO [reader:kex.DHG14@110] Sending SSH_MSG_KEXDH_INIT 2013-01-27 03:34:49,924 INFO [reader:transport.KeyExchanger@370] Received kex followup data 2013-01-27 03:34:49,924 INFO [reader:kex.DHG14@120] Received SSH_MSG_KEXDH_REPLY 2013-01-27 03:34:49,975 INFO [reader:transport.KeyExchanger@203] Sending SSH_MSG_NEWKEYS 2013-01-27 03:34:49,975 INFO [reader:transport.KeyExchanger@385] Received SSH_MSG_NEWKEYS 2013-01-27 03:34:49,976 INFO [NodeConfiguratorThread-4-4:node.CmfSSHClient@686] Key exchange took 0.132 seconds 2013-01-27 03:34:49,976 INFO [NodeConfiguratorThread-4-4:node.NodeConfiguratorProgress@482] 103.4.112.102: Transitioning from CONNECT (PT0.140S) to AUTHENTICATE 2013-01-27 03:34:49,977 WARN [NodeConfiguratorThread-4-4:node.NodeConfigurator@277] Could not authenticate to 103.4.xxx.xxx net.schmizz.sshj.common.SSHException: No provider available for Unknown key file at net.schmizz.sshj.SSHClient.loadKeys(SSHClient.java:526) at com.cloudera.server.cmf.node.NodeConfigurator.connect(NodeConfigurator.java:272) at com.cloudera.server.cmf.node.NodeConfigurator.configure(NodeConfigurator.java:709) at com.cloudera.server.cmf.node.NodeConfigurator.run(NodeConfigurator.java:755) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) 2013-01-27 03:34:49,977 INFO [NodeConfiguratorThread-4-4:node.NodeConfiguratorProgress@503] 103.4.112.102: Setting AUTHENTICATE as failed and done state
ssh公钥本身不允许你login到任何服务器,它是私钥和公钥组合(在这种情况下是id_rsa),它允许你使用sshvalidation(login)到远程服务器。 实际上,从远程客户端您需要指定私钥来login到服务器,而不是公钥。
从Cloudera Manager安装说明 –
“要在安装和升级过程中进行身份validation,您需要input密码或上传用于root或sudo用户帐户的公钥和私钥对。”
所以,如果这是你想要实现的,你也需要上传私钥。 你很可能会在〜/ .ssh / id_rsa中find它