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

Reply via email to