Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a master and slave cluster. I am setting up cloudera manager.

On the master I created a passwordless key using the following.

ssh-keygen -f id_rsa -t rsa -N '' 
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa

I then placed the key on all slaves.

   cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys

From the master I can ssh without a password. It works great.

Now I need a public-key for authentication. What is the key? Is that id_rsa.pub? I have to enter into a browers the location of the public-key for auth. When I used id_rsa.pub I got this error. But using that key allows me to ssh into any other slave without a password.

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
share|improve this question
add comment

1 Answer

up vote 3 down vote accepted

ssh public key on its own does not allow you to login to any server, it is the private & public key combination (in this case, id_rsa) which allows you to authenticate(login) into a remote server using ssh. In fact from the remote client you need to specify the private key to login to the server, not the public key.

From the Cloudera Manager installation instruction -

"For authentication during the installation and upgrade procedures, you will need to either enter the password or upload a public and private key pair for the root or sudo user account."

So if this is what you are trying to achieve, you need to upload the private key too. You will most likely find it in ~/.ssh/id_rsa

share|improve this answer
    
wow.....thanks soooooo much..a beer on me if I could! –  Tampa Jan 27 '13 at 5:31
    
You are more than welcome, I'm glad I was able to help. –  Daniel t. Jan 28 '13 at 2:16
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.