SSH
Available as of Camel
...
2.10
...
The
...
SSH
...
component
...
enables
...
access
...
to
...
SSH
...
servers
...
such
...
that
...
you
...
can
...
send
...
an
...
SSH
...
command,
...
and
...
process
...
the
...
response.
...
Maven
...
users
...
will
...
need
...
to
...
add
...
the
...
following
...
dependency
...
to
...
their
...
pom.xml
...
for
...
this
...
component:
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-ssh</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency> {code} h3. URI format {code} |
URI format
Code Block |
---|
ssh:[username[:password]@]host[:port][?options]
{code}
h3. Options
{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
| {{host}} | {{null}} | Hostname of SSH Server |
| {{port}} | {{22}} | Port of the SSH Server |
| {{username}} | {{null}} | Username used for authenticating with SSH Server. |
| {{password}} | {{null}} | Password used for authenticating with SSH Server. Used if {{keyPairProvider}} is null. |
| {{keyPairProvider}} | {{null}} | Refers to a {{ |
Options
Div | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Consumer Only Options
Div | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Usage as a Producer endpoint
When the SSH Component is used as a Producer (.to("ssh://...")
...
),
...
it
...
will
...
send
...
the
...
message
...
body
...
as
...
the
...
command
...
to
...
execute
...
on
...
the
...
remote
...
SSH
...
server.
...
Here
...
is
...
an
...
example
...
of
...
this
...
within
...
the
...
XML
...
DSL.
...
Note
...
that
...
the
...
command
...
has
...
an
...
XML
...
encoded
...
newline
...
(
...
&
...
#10;
...
).
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <route id="camel-example-ssh-producer"> <from uri="direct:exampleSshProducer"/> <setBody> <constant>features:list </constant> </setBody> <to uri="ssh://karaf:karaf@localhost:8101"/> <log message="${body}"/> </route> {code} h3. Authentication The SSH Component can authenticate against the remote SSH server using one of two mechanisms: Public Key certificate or |
Authentication
The SSH Component can authenticate against the remote SSH server using one of two mechanisms: Public Key certificate or username/password.
...
Configuring
...
how
...
the
...
SSH
...
Component
...
does
...
authentication
...
is
...
based
...
on
...
how
...
and
...
which
...
options
...
are
...
set.
...
- First,
...
- it
...
- will
...
- look
...
- to
...
- see
...
- if
...
- the
...
certResource
...
- option
...
- has
...
- been
...
- set,
...
- and
...
- if
...
- so,
...
- use
...
- it
...
- to
...
- locate
...
- the
...
- referenced
...
- Public
...
- Key
...
- certificate
...
- and
...
- use
...
- that
...
- for
...
- authentication.
- If
certResource
is not set, it will look to see if akeyPairProvider
has been set, and if so, it will use that to for certificate based authentication. - If neither
certResource
norkeyPairProvider
are set, it will use theusername
andpassword
options for authentication.
The following route fragment shows an SSH polling consumer using a certificate from the classpath.
In the XML DSL,
Code Block | ||||
---|---|---|---|---|
| ||||
# If {{certResource}} is not set, it will look to see if a {{keyPairProvider}} has been set, and if so, it will use that to for certificate based authentication. # If neither {{certResource}} nor {{keyPairProvider}} are set, it will use the {{username}} and {{password}} options for authentication. The following route fragment shows an SSH polling consumer using a certificate from the classpath. In the XML DSL, {code:xml} <route> <from uri="ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A"/> <log message="${body}"/> </route> {code} |
In
...
the
...
Java
...
DSL,
Code Block | ||||
---|---|---|---|---|
| ||||
{code:java} from("ssh://scott@localhost:8101?certResource=classpath:test_rsa&useFixedDelay=true&delay=5000&pollCommand=features:list%0A") .log("${body}"); {code} |
An
...
example
...
of
...
using
...
Public
...
Key
...
authentication
...
is
...
provided
...
in
...
examples/camel-example-ssh-security
...
.
Certificate Dependencies
You will need to add some additional runtime dependencies if you use certificate based authentication. The dependency versions shown are as of Camel 2.11,
...
you
...
may
...
need
...
to
...
use
...
later
...
versions
...
depending
...
what
...
version
...
of
...
Camel
...
you
...
are
...
using.
Code Block | ||||
---|---|---|---|---|
| ||||
{code:xml} <dependency> <groupId>org.apache.sshd</groupId> <artifactId>sshd-core</artifactId> <version>0.8.0</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpg-jdk15on</artifactId> <version>1.47</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.47</version> </dependency> {code} h3. Example See the {{ |
Example
See the examples/camel-example-ssh
...
and
...
examples/camel-example-ssh-security
...
in
...
the
...
Camel
...
distribution.
...
Include Page | ||||
---|---|---|---|---|
|