Excellent! thanks for the QA ;-)

The camel-ssh doc clearly needs help, so any thoughts you have on how
to update based on your recent experience would be most appreciated...

On Fri, Feb 15, 2013 at 6:48 AM, Martin Stiborský
<martin.stibor...@gmail.com> wrote:
> Woohoo, victory, thanks for the hint, Scott. ClassLoader was the magical
> thing.
>
> ResourceKeyPairProvider keyPairProvider = new ResourceKeyPairProvider(
>                 new String[]{pathToTheKey}, null,
> this.getClass().getClassLoader());
>
> And camel-crypto, as new dependency, because org.bouncycastle.openssl ...
>
> Thanks a lot guys.
>
>
> On Fri, Feb 15, 2013 at 11:34 AM, Scott Cranton <sc...@cranton.com> wrote:
>
>> Have you tried setting the keyPairProvider to an instance of
>> org.apache.sshd.common.keyprovider.ResourceKeyPairProvider? That
>> should work better in OSGi, though I haven't tried it recently...
>>
>> Re mulitple ids: you can add multiple component instances with
>> different ids (e.g. sshGit) and reference them from Camel by those
>> ids.
>>
>> addComponent("sshGit", sshGitComponent)
>>
>> .to("sshGit:git@localhost)
>>
>> On Fri, Feb 15, 2013 at 4:26 AM, Martin Stiborský
>> <martin.stibor...@gmail.com> wrote:
>> > 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
>>
>
>
>
> --
> S pozdravem / Best regards
> Martin Stiborský
>
> Jabber: st...@njs.netlab.cz
> Twitter: http://www.twitter.com/stibi

Reply via email to