Package org.apache.sshd.client
Class SshClient
java.lang.Object
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Channel
,ClientAuthenticationManager
,ClientFactoryManager
,ClientIdentityLoaderHolder
,ClientIdentityLoaderManager
,ClientProxyConnectorHolder
,ClientSessionCreator
,AttributeRepository
,AttributeStore
,UserAuthFactoriesManager<ClientSession,
,UserAuth, UserAuthFactory> ChannelListenerManager
,ChannelStreamWriterResolver
,ChannelStreamWriterResolverManager
,Closeable
,FilePasswordProviderHolder
,FilePasswordProviderManager
,FactoryManager
,PortForwardingEventListenerManager
,IoServiceEventListenerManager
,KexExtensionHandlerManager
,KexFactoryManager
,KeyIdentityProviderHolder
,PropertyResolver
,ReservedSessionMessagesManager
,SessionDisconnectHandlerManager
,SessionHeartbeatController
,SessionListenerManager
,UnknownChannelReferenceHandlerManager
,SignatureFactoriesHolder
,SignatureFactoriesManager
Entry point for the client side of the SSH protocol.
The default configured client can be created using the setUpDefaultClient()
. The next step is to configure
and then start the client using the start()
method.
Sessions can then be created using on of the ClientSessionCreator.connect(String, String, int)
or
ClientSessionCreator.connect(String, java.net.SocketAddress)
methods.
The client can be stopped any time using the stop()
method.
Following is an example of using the SshClient
:
try (SshClient client = SshClient.setUpDefaultClient()) {
...further configuration of the client...
client.start();
try (ClientSession session = client.connect(login, host, port)
.verify(...timeout...)
.getSession()) {
session.addPasswordIdentity(password);
session.auth().verify(...timeout...);
try (ClientChannel channel = session.createChannel(ClientChannel.CHANNEL_SHELL)) {
channel.setIn(new NoCloseInputStream(System.in));
channel.setOut(new NoCloseOutputStream(System.out));
channel.setErr(new NoCloseOutputStream(System.err));
channel.open();
channel.waitFor(ClientChannel.CLOSED, 0);
} finally {
session.close(false);
}
} finally {
client.stop();
}
}
Note: the idea is to have one SshClient
instance for the entire application and re-use it
repeatedly in order to create as many sessions as necessary - possibly with different hosts, ports, users, passwords,
etc. - including concurrently. In other words, except for exceptional cases, it is recommended to initialize
one instance of SshClient
for the application and then use throughout - including for multi-threading. As
long as the SshClient
is not re-configured it should be multi-thread safe regardless of the target session
being created.- Author:
- Apache MINA SSHD Project
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
AbstractCloseable.State
Nested classes/interfaces inherited from interface org.apache.sshd.common.AttributeRepository
AttributeRepository.AttributeKey<T extends Object>
Nested classes/interfaces inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
SessionHeartbeatController.HeartbeatType
-
Field Summary
Modifier and TypeFieldDescriptionprotected IoConnector
static final List<ServiceFactory>
static final List<UserAuthFactory>
Default user authentication preferences if not setprotected SessionFactory
protected List<UserAuthFactory>
Fields inherited from class org.apache.sshd.common.helpers.AbstractFactoryManager
agentFactory, channelFactories, channelListenerProxy, channelListeners, executor, fileSystemFactory, forwarderFactory, forwardingFilter, globalRequestHandlers, ioServiceFactory, ioServiceFactoryFactory, randomFactory, serviceFactories, sessionListenerProxy, sessionListeners, sessionTimeoutListener, shutdownExecutor, timeoutListenerFuture, tunnelListenerProxy, tunnelListeners
Fields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, state
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
Fields inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolver
NONE
Fields inherited from interface org.apache.sshd.client.session.ClientSessionCreator
TARGET_SERVER
Fields inherited from interface org.apache.sshd.common.FactoryManager
DEFAULT_VERSION
Fields inherited from interface org.apache.sshd.common.PropertyResolver
EMPTY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addPasswordIdentity
(String password) void
protected void
Resolves the effectiveHostConfigEntry
and connects to itconnect
(String username, String host, int port, AttributeRepository context, SocketAddress localAddress) Resolves the effectiveHostConfigEntry
and connects to itconnect
(String username, SocketAddress targetAddress, AttributeRepository context, SocketAddress localAddress) Resolves the effectiveHostConfigEntry
and connects to itconnect
(HostConfigEntry hostConfig, AttributeRepository context, SocketAddress localAddress) protected SshFutureListener<IoConnectFuture>
createConnectCompletionListener
(ConnectFuture connectFuture, String username, SocketAddress address, KeyIdentityProvider identities, HostConfigEntry hostConfig) protected IoConnector
protected SessionFactory
protected ConnectFuture
doConnect
(String username, SocketAddress targetAddress, AttributeRepository context, SocketAddress localAddress, KeyIdentityProvider identities, HostConfigEntry hostConfig) protected ConnectFuture
doConnect
(HostConfigEntry hostConfig, List<HostConfigEntry> jumps, AttributeRepository context, SocketAddress localAddress) protected KeyIdentityProvider
ensureFilePasswordProvider
(KeyIdentityProvider identities) Sets this client'sFilePasswordProvider
on theKeyIdentityProvider
if it is anAbstractResourceKeyPairProvider
or implementsFilePasswordProviderManager
and doesn't have one yet.protected Closeable
RetrievePasswordIdentityProvider
used to provide password candidatesRetrieve the server key verifier to be used to check the key when connecting to an SSH server.boolean
protected void
onConnectOperationComplete
(IoSession ioSession, ConnectFuture connectFuture, String username, SocketAddress address, KeyIdentityProvider identities, HostConfigEntry hostConfig) void
open()
protected List<HostConfigEntry>
parseProxyJumps
(String proxyJump, AttributeRepository context) protected KeyIdentityProvider
preloadClientIdentities
(Collection<? extends NamedResource> locations) removePasswordIdentity
(String password) protected HostConfigEntry
resolveHost
(String username, String host, int port, AttributeRepository context, SocketAddress localAddress) void
void
setClientProxyConnector
(ClientProxyConnector proxyConnector) void
setFilePasswordProvider
(FilePasswordProvider provider) void
void
void
setKeyIdentityProvider
(KeyIdentityProvider keyIdentityProvider) static <C extends SshClient>
CsetKeyPairProvider
(C client, boolean strict, boolean supportedOnly, FilePasswordProvider provider, LinkOption... options) static <C extends SshClient>
CsetKeyPairProvider
(C client, Path dir, boolean strict, boolean supportedOnly, FilePasswordProvider provider, LinkOption... options) void
void
void
void
setServerKeyVerifier
(ServerKeyVerifier serverKeyVerifier) void
setSessionFactory
(SessionFactory sessionFactory) static SshClient
Setup a default client.protected void
setupDefaultSessionIdentities
(ClientSession session, KeyIdentityProvider extraIdentities) static SimpleClient
Setup a default client, starts it and then wraps it as aSimpleClient
void
setUserAuthFactories
(List<UserAuthFactory> userAuthFactories) void
setUserInteraction
(UserInteraction userInteraction) void
start()
Starts the SSH client and can start creating sessions using it.void
stop()
toString()
static SimpleClient
wrapAsSimpleClient
(SshClient client) Wraps anSshClient
instance as aSimpleClient
Methods inherited from class org.apache.sshd.common.helpers.AbstractFactoryManager
addChannelListener, addPortForwardingEventListener, addSessionListener, attributeKeys, clearAttributes, computeAttributeIfAbsent, createSessionTimeoutListener, getAgentFactory, getAttribute, getAttributesCount, getChannelFactories, getChannelListenerProxy, getChannelStreamWriterResolver, getFileSystemFactory, getForwarderFactory, getForwardingFilter, getGlobalRequestHandlers, getIoServiceEventListener, getIoServiceFactory, getIoServiceFactoryFactory, getNioWorkers, getParentPropertyResolver, getPortForwardingEventListenerProxy, getProperties, getRandomFactory, getReservedSessionMessagesHandler, getScheduledExecutorService, getServiceFactories, getSessionDisconnectHandler, getSessionListenerProxy, getUnknownChannelReferenceHandler, getVersion, removeAttribute, removeChannelListener, removePortForwardingEventListener, removeSessionListener, removeSessionTimeout, resolveUnknownChannelReferenceHandler, setAgentFactory, setAttribute, setChannelFactories, setChannelStreamWriterResolver, setFileSystemFactory, setForwarderFactory, setForwardingFilter, setGlobalRequestHandlers, setIoServiceEventListener, setIoServiceFactoryFactory, setNioWorkers, setParentPropertyResolver, setRandomFactory, setReservedSessionMessagesHandler, setScheduledExecutorService, setScheduledExecutorService, setServiceFactories, setSessionDisconnectHandler, setUnknownChannelReferenceHandler, setupSessionTimeout, stopSessionTimeoutListener
Methods inherited from class org.apache.sshd.common.kex.AbstractKexFactoryManager
getCipherFactories, getCompressionFactories, getDelegate, getKexExtensionHandler, getKeyExchangeFactories, getMacFactories, getSignatureFactories, resolveEffectiveFactories, resolveEffectiveProvider, setCipherFactories, setCompressionFactories, setKexExtensionHandler, setKeyExchangeFactories, setMacFactories, setSignatureFactories
Methods inherited from class org.apache.sshd.common.util.closeable.AbstractInnerCloseable
doCloseGracefully, doCloseImmediately
Methods inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
addCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, preClose, removeCloseFutureListener
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.sshd.common.AttributeRepository
attributeKeys, getAttribute, getAttributesCount
Methods inherited from interface org.apache.sshd.common.AttributeStore
clearAttributes, computeAttributeIfAbsent, removeAttribute, setAttribute
Methods inherited from interface org.apache.sshd.common.channel.ChannelListenerManager
addChannelListener, getChannelListenerProxy, removeChannelListener
Methods inherited from interface org.apache.sshd.common.channel.throttle.ChannelStreamWriterResolverManager
getChannelStreamWriterResolver, resolveChannelStreamWriter, resolveChannelStreamWriterResolver, setChannelStreamWriterResolver
Methods inherited from interface org.apache.sshd.client.ClientAuthenticationManager
setUserAuthFactoriesNames
Methods inherited from interface org.apache.sshd.client.session.ClientSessionCreator
connect, connect, connect, connect, connect, connect, connect, connect, connect
Methods inherited from interface org.apache.sshd.common.Closeable
addCloseFutureListener, close, close, isClosed, isClosing, isOpen, removeCloseFutureListener
Methods inherited from interface org.apache.sshd.common.FactoryManager
getAgentFactory, getAgentForwardingFilter, getChannelFactories, getFileSystemFactory, getForwarderFactory, getForwardingFilter, getGlobalRequestHandlers, getIoServiceFactory, getRandomFactory, getScheduledExecutorService, getServiceFactories, getTcpForwardingFilter, getVersion, getX11ForwardingFilter, resolveAttribute
Methods inherited from interface org.apache.sshd.common.io.IoServiceEventListenerManager
getIoServiceEventListener, setIoServiceEventListener
Methods inherited from interface org.apache.sshd.common.kex.extension.KexExtensionHandlerManager
getKexExtensionHandler, setKexExtensionHandler
Methods inherited from interface org.apache.sshd.common.kex.KexFactoryManager
getCipherFactories, getCipherFactoriesNameList, getCipherFactoriesNames, getCompressionFactories, getCompressionFactoriesNameList, getCompressionFactoriesNames, getKeyExchangeFactories, getMacFactories, getMacFactoriesNameList, getMacFactoriesNames, setCipherFactories, setCipherFactoriesNameList, setCipherFactoriesNames, setCipherFactoriesNames, setCompressionFactories, setCompressionFactoriesNameList, setCompressionFactoriesNames, setCompressionFactoriesNames, setKeyExchangeFactories, setMacFactories, setMacFactoriesNameList, setMacFactoriesNames, setMacFactoriesNames
Methods inherited from interface org.apache.sshd.common.forward.PortForwardingEventListenerManager
addPortForwardingEventListener, getPortForwardingEventListenerProxy, removePortForwardingEventListener
Methods inherited from interface org.apache.sshd.common.PropertyResolver
getBoolean, getBooleanProperty, getCharset, getInteger, getIntProperty, getLong, getLongProperty, getObject, getParentPropertyResolver, getProperties, getString, getStringProperty, isEmpty
Methods inherited from interface org.apache.sshd.common.session.ReservedSessionMessagesManager
getReservedSessionMessagesHandler, setReservedSessionMessagesHandler
Methods inherited from interface org.apache.sshd.common.session.SessionDisconnectHandlerManager
getSessionDisconnectHandler, setSessionDisconnectHandler
Methods inherited from interface org.apache.sshd.common.session.SessionHeartbeatController
disableSessionHeartbeat, getSessionHeartbeatInterval, getSessionHeartbeatType, setSessionHeartbeat, setSessionHeartbeat
Methods inherited from interface org.apache.sshd.common.session.SessionListenerManager
addSessionListener, getSessionListenerProxy, removeSessionListener
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesHolder
getSignatureFactories, getSignatureFactoriesNameList, getSignatureFactoriesNames
Methods inherited from interface org.apache.sshd.common.signature.SignatureFactoriesManager
setSignatureFactories, setSignatureFactoriesNameList, setSignatureFactoriesNames, setSignatureFactoriesNames
Methods inherited from interface org.apache.sshd.common.session.UnknownChannelReferenceHandlerManager
getUnknownChannelReferenceHandler, resolveUnknownChannelReferenceHandler, setUnknownChannelReferenceHandler
Methods inherited from interface org.apache.sshd.common.auth.UserAuthFactoriesManager
getUserAuthFactoriesNameList, getUserAuthFactoriesNames, setUserAuthFactoriesNameList, setUserAuthFactoriesNames
-
Field Details
-
DEFAULT_SSH_CLIENT_FACTORY
-
DEFAULT_USER_AUTH_FACTORIES
Default user authentication preferences if not set- See Also:
-
DEFAULT_SERVICE_FACTORIES
-
connector
-
sessionFactory
-
userAuthFactories
-
-
Constructor Details
-
SshClient
public SshClient()
-
-
Method Details
-
getSessionFactory
-
setSessionFactory
-
getClientProxyConnector
- Specified by:
getClientProxyConnector
in interfaceClientProxyConnectorHolder
-
setClientProxyConnector
- Specified by:
setClientProxyConnector
in interfaceClientProxyConnectorHolder
-
getServerKeyVerifier
Description copied from interface:ClientAuthenticationManager
Retrieve the server key verifier to be used to check the key when connecting to an SSH server.- Specified by:
getServerKeyVerifier
in interfaceClientAuthenticationManager
- Returns:
- the
ServerKeyVerifier
to use - nevernull
-
setServerKeyVerifier
- Specified by:
setServerKeyVerifier
in interfaceClientAuthenticationManager
-
getHostConfigEntryResolver
- Specified by:
getHostConfigEntryResolver
in interfaceClientFactoryManager
- Returns:
- The
HostConfigEntryResolver
to use in order to resolve the effective session parameters - nevernull
-
setHostConfigEntryResolver
- Specified by:
setHostConfigEntryResolver
in interfaceClientFactoryManager
-
getFilePasswordProvider
- Specified by:
getFilePasswordProvider
in interfaceFilePasswordProviderHolder
-
setFilePasswordProvider
- Specified by:
setFilePasswordProvider
in interfaceFilePasswordProviderManager
-
getClientIdentityLoader
- Specified by:
getClientIdentityLoader
in interfaceClientIdentityLoaderHolder
-
setClientIdentityLoader
- Specified by:
setClientIdentityLoader
in interfaceClientIdentityLoaderManager
-
getUserInteraction
- Specified by:
getUserInteraction
in interfaceClientAuthenticationManager
- Returns:
- A
UserInteraction
object to communicate with the user (may benull
to indicate that no such communication is allowed)
-
setUserInteraction
- Specified by:
setUserInteraction
in interfaceClientAuthenticationManager
-
getPasswordAuthenticationReporter
- Specified by:
getPasswordAuthenticationReporter
in interfaceClientAuthenticationManager
-
setPasswordAuthenticationReporter
- Specified by:
setPasswordAuthenticationReporter
in interfaceClientAuthenticationManager
-
getHostBasedAuthenticationReporter
- Specified by:
getHostBasedAuthenticationReporter
in interfaceClientAuthenticationManager
-
setHostBasedAuthenticationReporter
- Specified by:
setHostBasedAuthenticationReporter
in interfaceClientAuthenticationManager
-
getUserAuthFactories
- Specified by:
getUserAuthFactories
in interfaceUserAuthFactoriesManager<ClientSession,
UserAuth, UserAuthFactory>
-
setUserAuthFactories
- Specified by:
setUserAuthFactories
in interfaceUserAuthFactoriesManager<ClientSession,
UserAuth, UserAuthFactory>
-
getRegisteredIdentities
- Specified by:
getRegisteredIdentities
in interfaceClientAuthenticationManager
- Returns:
- The
AuthenticationIdentitiesProvider
to be used for attempting password or public key authentication
-
getPasswordIdentityProvider
Description copied from interface:ClientAuthenticationManager
RetrievePasswordIdentityProvider
used to provide password candidates- Specified by:
getPasswordIdentityProvider
in interfaceClientAuthenticationManager
- Returns:
- The
PasswordIdentityProvider
instance - ignored ifnull
(i.e., no passwords available). - See Also:
-
setPasswordIdentityProvider
- Specified by:
setPasswordIdentityProvider
in interfaceClientAuthenticationManager
-
addPasswordIdentity
- Specified by:
addPasswordIdentity
in interfaceClientAuthenticationManager
- Parameters:
password
- Password to be added - may not benull
/empty. Note: this password is in addition to whatever passwords are available via thePasswordIdentityProvider
(if any)
-
removePasswordIdentity
- Specified by:
removePasswordIdentity
in interfaceClientAuthenticationManager
- Parameters:
password
- The password to remove - ignored ifnull
/empty- Returns:
- The removed password - same one that was added via
ClientAuthenticationManager.addPasswordIdentity(String)
- ornull
if no match found
-
addPublicKeyIdentity
- Specified by:
addPublicKeyIdentity
in interfaceClientAuthenticationManager
- Parameters:
kp
- TheKeyPair
to add - may not benull
Note: this key is in addition to whatever keys are available via theKeyIdentityProvider
(if any)
-
removePublicKeyIdentity
- Specified by:
removePublicKeyIdentity
in interfaceClientAuthenticationManager
- Parameters:
kp
- TheKeyPair
to remove - ignored ifnull
- Returns:
- The removed
KeyPair
- same one that was added viaClientAuthenticationManager.addPublicKeyIdentity(KeyPair)
- ornull
if no match found
-
getKeyIdentityProvider
- Specified by:
getKeyIdentityProvider
in interfaceKeyIdentityProviderHolder
-
setKeyIdentityProvider
- Specified by:
setKeyIdentityProvider
in interfaceKeyIdentityProviderHolder
-
getPublicKeyAuthenticationReporter
- Specified by:
getPublicKeyAuthenticationReporter
in interfaceClientAuthenticationManager
-
setPublicKeyAuthenticationReporter
- Specified by:
setPublicKeyAuthenticationReporter
in interfaceClientAuthenticationManager
-
checkConfig
protected void checkConfig()- Overrides:
checkConfig
in classAbstractFactoryManager
-
isStarted
public boolean isStarted() -
start
public void start()Starts the SSH client and can start creating sessions using it. Ignored if alreadystarted
. -
stop
public void stop() -
open
- Throws:
IOException
-
getInnerCloseable
- Specified by:
getInnerCloseable
in classAbstractInnerCloseable
-
connect
Description copied from interface:ClientSessionCreator
Resolves the effectiveHostConfigEntry
and connects to it- Specified by:
connect
in interfaceClientSessionCreator
- Parameters:
uriStr
- The server uri to connect to- Returns:
- A
ConnectFuture
- Throws:
IOException
- If failed to resolve the effective target or connect to it- See Also:
-
connect
public ConnectFuture connect(String username, SocketAddress targetAddress, AttributeRepository context, SocketAddress localAddress) throws IOException Description copied from interface:ClientSessionCreator
Resolves the effectiveHostConfigEntry
and connects to it- Specified by:
connect
in interfaceClientSessionCreator
- Parameters:
username
- The intended usernametargetAddress
- The intended targetSocketAddress
- nevernull
. If this is anInetSocketAddress
then the effectiveHostConfigEntry
is resolved and used.context
- An optional "context" to be attached to the established session if successfully connectedlocalAddress
- The local address to use - ifnull
an automatic ephemeral port and bind address is used- Returns:
- A
ConnectFuture
- Throws:
IOException
- If failed to resolve the effective target or connect to it
-
connect
public ConnectFuture connect(String username, String host, int port, AttributeRepository context, SocketAddress localAddress) throws IOException Description copied from interface:ClientSessionCreator
Resolves the effectiveHostConfigEntry
and connects to it- Specified by:
connect
in interfaceClientSessionCreator
- Parameters:
username
- The intended usernamehost
- The target host name/address - nevernull
/emptyport
- The target portcontext
- An optional "context" to be attached to the established session if successfully connectedlocalAddress
- The local address to use - ifnull
an automatic ephemeral port and bind address is used- Returns:
- A
ConnectFuture
- Throws:
IOException
- If failed to resolve the effective target or connect to it
-
connect
public ConnectFuture connect(HostConfigEntry hostConfig, AttributeRepository context, SocketAddress localAddress) throws IOException - Specified by:
connect
in interfaceClientSessionCreator
- Parameters:
hostConfig
- The effectiveHostConfigEntry
to connect to - nevernull
context
- An optional "context" to be attached to the established session if successfully connectedlocalAddress
- The local address to use - ifnull
an automatic ephemeral port and bind address is used- Returns:
- A
ConnectFuture
- Throws:
IOException
- If failed to create the connection future
-
doConnect
protected ConnectFuture doConnect(HostConfigEntry hostConfig, List<HostConfigEntry> jumps, AttributeRepository context, SocketAddress localAddress) throws IOException - Throws:
IOException
-
doConnect
protected ConnectFuture doConnect(String username, SocketAddress targetAddress, AttributeRepository context, SocketAddress localAddress, KeyIdentityProvider identities, HostConfigEntry hostConfig) throws IOException - Throws:
IOException
-
parseProxyJumps
protected List<HostConfigEntry> parseProxyJumps(String proxyJump, AttributeRepository context) throws IOException - Throws:
IOException
-
resolveHost
protected HostConfigEntry resolveHost(String username, String host, int port, AttributeRepository context, SocketAddress localAddress) throws IOException - Throws:
IOException
-
preloadClientIdentities
protected KeyIdentityProvider preloadClientIdentities(Collection<? extends NamedResource> locations) throws IOException - Throws:
IOException
-
createConnectCompletionListener
protected SshFutureListener<IoConnectFuture> createConnectCompletionListener(ConnectFuture connectFuture, String username, SocketAddress address, KeyIdentityProvider identities, HostConfigEntry hostConfig) -
onConnectOperationComplete
protected void onConnectOperationComplete(IoSession ioSession, ConnectFuture connectFuture, String username, SocketAddress address, KeyIdentityProvider identities, HostConfigEntry hostConfig) throws IOException, GeneralSecurityException - Throws:
IOException
GeneralSecurityException
-
ensureFilePasswordProvider
Sets this client'sFilePasswordProvider
on theKeyIdentityProvider
if it is anAbstractResourceKeyPairProvider
or implementsFilePasswordProviderManager
and doesn't have one yet. If the givenidentities
is aMultiKeyIdentityProvider
, the wrapped identity providers are set up.- Parameters:
identities
-KeyIdentityProvider
to set up- Returns:
- a
KeyIdentityProvider
configured with aFilePasswordProvider
- See Also:
-
setupDefaultSessionIdentities
protected void setupDefaultSessionIdentities(ClientSession session, KeyIdentityProvider extraIdentities) throws IOException, GeneralSecurityException - Throws:
IOException
GeneralSecurityException
-
createConnector
-
createSessionFactory
-
toString
-
setUpDefaultSimpleClient
Setup a default client, starts it and then wraps it as aSimpleClient
- Returns:
- The
SimpleClient
wrapper. Note: when the wrapper is closed the client is also stopped - See Also:
-
wrapAsSimpleClient
Wraps anSshClient
instance as aSimpleClient
- Parameters:
client
- The client instance - nevernull
. Note: client must be started before the simple client wrapper is used.- Returns:
- The
SimpleClient
wrapper. Note: when the wrapper is closed the client is also stopped
-
setUpDefaultClient
Setup a default client. The client does not require any additional setup.- Returns:
- a newly create
SshClient
with default configurations
-
setKeyPairProvider
public static <C extends SshClient> C setKeyPairProvider(C client, boolean strict, boolean supportedOnly, FilePasswordProvider provider, LinkOption... options) throws IOException, GeneralSecurityException - Type Parameters:
C
- The generic client class- Parameters:
client
- TheSshClient
to updatedstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationsupportedOnly
- Iftrue
then ignore identities that are not supported internallyprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- The updated client instance - provided a non-
null
KeyPairProvider
was generated - Throws:
IOException
- If failed to access the file systemGeneralSecurityException
- If failed to load the keys- See Also:
-
setKeyPairProvider
public static <C extends SshClient> C setKeyPairProvider(C client, Path dir, boolean strict, boolean supportedOnly, FilePasswordProvider provider, LinkOption... options) throws IOException, GeneralSecurityException - Type Parameters:
C
- The generic client class- Parameters:
client
- TheSshClient
to updateddir
- The folder to scan for the built-in identitiesstrict
- Iftrue
then files that do not have the required access rights are excluded from considerationsupportedOnly
- Iftrue
then ignore identities that are not supported internallyprovider
- AFilePasswordProvider
- may benull
if the loaded keys are guaranteed not to be encrypted. The argument toFilePasswordProvider#getPassword
is the path of the file whose key is to be loadedoptions
- TheLinkOption
s to apply when checking for existence- Returns:
- The updated client instance - provided a non-
null
KeyIdentityProvider
was generated - Throws:
IOException
- If failed to access the file systemGeneralSecurityException
- If failed to load the keys- See Also:
-