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

Reply via email to