У меня есть главный и подчиненный кластер. Настраиваю cloudera manager.
На мастере я создал ключ без пароля, используя следующее.
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 без пароля. Отлично работает.
Теперь мне нужен открытый ключ для аутентификации. Какой ключ? Это id_rsa.pub? Мне нужно ввести в браузеры расположение открытого ключа для авторизации. Когда я использовал id_rsa.pub, я получил эту ошибку. Но использование этого ключа позволяет мне подключаться по ssh к любому другому ведомому устройству без пароля.
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 сам по себе не позволяет вам войти на какой-либо сервер, это комбинация закрытого и открытого ключей (в данном случае id_rsa), которая позволяет вам аутентифицироваться (входить) на удаленный сервер с помощью ssh. Фактически с удаленного клиента вам нужно указать закрытый ключ для входа на сервер, а не открытый ключ.
Из инструкции по установке Cloudera Manager -
«Для аутентификации во время процедур установки и обновления вам нужно будет либо ввести пароль, либо загрузить пару открытого и закрытого ключей для учетной записи пользователя root или sudo».
Так что, если это то, чего вы пытаетесь достичь, вам также необходимо загрузить закрытый ключ. Скорее всего, вы найдете его в ~ / .ssh / id_rsa