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

Reply via email to