Often I found solution for a problem in few minutes after posting to mailing list, so let's try the luck now :)
Currently I'm digging in the camel-ssh, because definitely there is problem with referencing the key file from resources. The very first thing I should do was enabling debug for camel-ssh component (surprise surprise...), because this: 2013-02-15 10:21:46,261 | INFO | qtp724367630-92 | FileKeyPairProvider | 24 - org.apache.sshd.core - 0.8.0 | Unable to read key /gitkeys/mykey.pem: java.io.FileNotFoundException: /gitkeys/mykey.pem (No such file or directory) I'll follow advice from Claus Ibsen and check ResourceHelper and how it could be used in camel-ssh... On Fri, Feb 15, 2013 at 9:01 AM, Martin Stiborský < martin.stibor...@gmail.com> wrote: > One more weird thing, from the log file: > > 2013-02-15 08:58:22,582 | INFO | NioProcessor-21 | ClientSessionImpl > | 24 - org.apache.sshd.core - 0.8.0 | Session > n...@my-git.server.com/10.xx.xx.xx:22 closed > > The "null"…I assume there should be username :) > > > On Fri, Feb 15, 2013 at 8:40 AM, Martin Stiborský < > martin.stibor...@gmail.com> wrote: > >> So, maybe the problem is really in the camel-ssh component, because, it's >> possible to get the key from resources, like that: >> >> from("cxfrs:bean:gitServer") >> .routeId("GitRoutes") >> .choice() >> >> .when(header(CxfConstants.OPERATION_NAME).isEqualTo("getRepositories")) >> .setBody(constant("info")) >> .process(new Processor() { >> @Override >> public void process(Exchange exchange) throws >> Exception { >> InputStream is = >> getClass().getResourceAsStream("/gitkeys/mykey.pem"); >> String myString = IOUtils.toString(is, "UTF-8"); >> >> exchange.getOut().setBody(myString); >> } >> }); >> >> So, no OSGi trouble here I guess… >> >> >> On Thu, Feb 14, 2013 at 9:06 PM, Martin Stiborský < >> martin.stibor...@gmail.com> wrote: >> >>> Ok, so camel-ssh needs some love, to make it better…ok. >>> But without modifications in camel-ssh, I'm just not able to use it with >>> my SSH key, I tried like all possible combinations now. >>> >>> SshComponent sshGitComponent = new SshComponent(); >>> sshGitComponent.setHost("localhost"); >>> sshGitComponent.setPort(22); >>> sshGitComponent.setUsername("git"); >>> sshGitComponent.setKeyPairProvider(new FileKeyPairProvider(new >>> String[]{"gitkeys/mykey.pem"})); >>> sshGitComponent.setKeyType(KeyPairProvider.SSH_RSA); >>> >>> getContext().removeComponent("ssh"); >>> getContext().addComponent("ssh", sshGitComponent); >>> >>> from("cxfrs:bean:gitServer") >>> .routeId("GitRoutes") >>> .choice() >>> >>> .when(header(CxfConstants.OPERATION_NAME).isEqualTo("getRepositories")) >>> .setBody(constant("info")) >>> .to("ssh:git@localhost"); >>> >>> Why the removeComponent and the addComponent? I'd like to add new >>> instance of SshComponent, under different id, but when I do that, >>> Camel stucks on start, trying to find this new component…so I'm doing >>> something wrong there probably… >>> >>> In src/main/resources/gitkeys/mykey.pem is the key…but as I said, it >>> doesn't work for me, or I missed the correct combination…I tried also >>> classpath and file prefix, but no luck. >>> >>> The unit test works fine…problem is in the OSGi I guess…some classpath >>> issue? I don't know, I have quite a headache from this already, need a >>> break. >>> >>> >>> On Thu, Feb 14, 2013 at 3:13 PM, Claus Ibsen <claus.ib...@gmail.com>wrote: >>> >>>> On Thu, Feb 14, 2013 at 2:57 PM, Martin Stiborský >>>> <martin.stibor...@gmail.com> wrote: >>>> > Still one problem…the unit test was fine, but now in OSGi environment, >>>> > there are more troubles… >>>> > Is there some trick how to get resource from a bundle? I can't get a >>>> > reference to the key file stored in src/main/resources :( >>>> > >>>> >>>> I guess maybe camel-ssh should load the cert file like we do in other >>>> components using ResourceHelper. >>>> Then we can load from classpath (osgi and the rest of the world), files >>>> etc. >>>> >>>> eg prefix with classpath: or file: >>>> >>>> >>>> > >>>> > On Thu, Feb 14, 2013 at 12:25 PM, Martin Stiborský < >>>> > martin.stibor...@gmail.com> wrote: >>>> > >>>> >> I can try help there as well. I was looking for a chance to make my >>>> "first >>>> >> camel commit" anyway :) >>>> >> >>>> >> >>>> >> On Thu, Feb 14, 2013 at 12:00 PM, Scott Cranton <sc...@cranton.com> >>>> wrote: >>>> >> >>>> >>> Glad you figured it out. Yeah, the camel-ssh page does need some >>>> >>> attention. Thanks for the feedback, and I look forward to seeing >>>> your >>>> >>> suggested updates to the doc. >>>> >>> >>>> >>> The certFilename is just a shorthand for creating a >>>> >>> FileKeyPairProvider, which is identical to what the >>>> >>> SshComponentSecurityTest is doing >>>> >>> >>>> >>> sshComponent.setKeyPairProvider(new FileKeyPairProvider(new >>>> >>> String[]{"src/test/resources/hostkey.pem"})); >>>> >>> >>>> >>> but I see in the tests, I'm using the same resource for both >>>> producer >>>> >>> and consumer, so to your point about when public key, when private, >>>> I >>>> >>> should check that, update the tests, and most importantly update the >>>> >>> docs as it isn't clear... >>>> >>> >>>> >>> Thanks, >>>> >>> Scott >>>> >>> >>>> >>> >>>> >>> >>>> >>> On Thu, Feb 14, 2013 at 5:48 AM, Martin Stiborský >>>> >>> <martin.stibor...@gmail.com> wrote: >>>> >>> > As usually, problem solved few minutes after I posted this "call >>>> for >>>> >>> help >>>> >>> > message". >>>> >>> > Really there was a problem with loading the private key from >>>> resources. >>>> >>> > >>>> >>> > Now it works...my next message will be about updating the >>>> camel-ssh >>>> >>> wiki :) >>>> >>> > >>>> >>> > >>>> >>> > On Thu, Feb 14, 2013 at 10:37 AM, Martin Stiborský < >>>> >>> > martin.stibor...@gmail.com> wrote: >>>> >>> > >>>> >>> >> Hello guys, >>>> >>> >> I need to use camel-ssh in my route, also, I need authentication >>>> with >>>> >>> SSH >>>> >>> >> keys to the remote server. >>>> >>> >> I can't figure out how to configure the SSH producer in Camel. >>>> >>> >> >>>> >>> >> Now I started digging in camel-ssh source codes, but that is a >>>> long >>>> >>> trip >>>> >>> >> for me right now :( >>>> >>> >> >>>> >>> >> First of all, I'm not sure, what is difference between >>>> "certFilename" >>>> >>> and >>>> >>> >> "keyPairProvider" options for the ssh endpoint? >>>> >>> >> >>>> >>> >> Then, the private key have to be provided for the ssh endpoint, >>>> right? >>>> >>> The >>>> >>> >> public key is configured on the remote server account... >>>> >>> >> Also, in which format the SSH private key should be? PEM? >>>> >>> >> Like this? >>>> >>> >> >>>> >>> >> openssl rsa -in ~/.ssh/id_rsa -outform pem > id_rsa.pem >>>> >>> >> >>>> >>> >> I guess so, because it's like this here: >>>> >>> >> >>>> >>> >>>> https://github.com/apache/camel/blob/trunk/components/camel-ssh/src/test/resources/hostkey.pem >>>> >>> >> >>>> >>> >> I'm not even sure if the key is loaded properly in the Java code >>>> from >>>> >>> >> resources directory, because the exception I see there is: >>>> >>> >> >>>> >>> >> ========== >>>> >>> >> Caused by: java.io.IOException: Error performing public key >>>> >>> authentication >>>> >>> >> at >>>> >>> >> >>>> >>> >>>> org.apache.sshd.client.auth.UserAuthPublicKey.<init>(UserAuthPublicKey.java:86) >>>> >>> >> at >>>> >>> >> >>>> >>> >>>> org.apache.sshd.client.session.ClientSessionImpl.authPublicKey(ClientSessionImpl.java:146) >>>> >>> >> at >>>> >>> >> >>>> >>> >>>> org.apache.camel.component.ssh.SshEndpoint.sendExecCommand(SshEndpoint.java:113) >>>> >>> >> at >>>> >>> >> >>>> org.apache.camel.component.ssh.SshProducer.process(SshProducer.java:38) >>>> >>> >> ... 72 more >>>> >>> >> Caused by: java.lang.NullPointerException >>>> >>> >> at >>>> >>> >> >>>> >>> >>>> org.apache.sshd.client.auth.UserAuthPublicKey.<init>(UserAuthPublicKey.java:59) >>>> >>> >> ... 75 more >>>> >>> >> ========== >>>> >>> >> >>>> >>> >> Note the NullPointerException ... >>>> >>> >> >>>> >>> >> But I tried to follow this ( >>>> >>> >> >>>> >>> >>>> https://github.com/apache/camel/blob/trunk/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentSecurityTest.java >>>> ) >>>> >>> test, >>>> >>> >> so I guess it should work... >>>> >>> >> >>>> >>> >> Could you give me at least some hint? >>>> >>> >> I promise I'll extend Camel wiki related to this topic >>>> definitely :P >>>> >>> >> >>>> >>> >> -- >>>> >>> >> S pozdravem / Best regards >>>> >>> >> Martin Stiborský >>>> >>> >> >>>> >>> >> Jabber: st...@njs.netlab.cz >>>> >>> >> Twitter: http://www.twitter.com/stibi >>>> >>> >> >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> > -- >>>> >>> > S pozdravem / Best regards >>>> >>> > Martin Stiborský >>>> >>> > >>>> >>> > Jabber: st...@njs.netlab.cz >>>> >>> > Twitter: http://www.twitter.com/stibi >>>> >>> >>>> >> >>>> >> >>>> >> >>>> >> -- >>>> >> S pozdravem / Best regards >>>> >> Martin Stiborský >>>> >> >>>> >> Jabber: st...@njs.netlab.cz >>>> >> Twitter: http://www.twitter.com/stibi >>>> >> >>>> > >>>> > >>>> > >>>> > -- >>>> > S pozdravem / Best regards >>>> > Martin Stiborský >>>> > >>>> > Jabber: st...@njs.netlab.cz >>>> > Twitter: http://www.twitter.com/stibi >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> ----------------- >>>> Red Hat, Inc. >>>> FuseSource is now part of Red Hat >>>> Email: cib...@redhat.com >>>> Web: http://fusesource.com >>>> Twitter: davsclaus >>>> Blog: http://davsclaus.com >>>> Author of Camel in Action: http://www.manning.com/ibsen >>>> >>> >>> >>> >>> -- >>> S pozdravem / Best regards >>> Martin Stiborský >>> >>> Jabber: st...@njs.netlab.cz >>> Twitter: http://www.twitter.com/stibi >>> >> >> >> >> -- >> S pozdravem / Best regards >> Martin Stiborský >> >> Jabber: st...@njs.netlab.cz >> Twitter: http://www.twitter.com/stibi >> > > > > -- > S pozdravem / Best regards > Martin Stiborský > > Jabber: st...@njs.netlab.cz > Twitter: http://www.twitter.com/stibi > -- S pozdravem / Best regards Martin Stiborský Jabber: st...@njs.netlab.cz Twitter: http://www.twitter.com/stibi