SSHClient class

The Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.

Inheritance
Mixed in types

Constructors

SSHClient({Uri hostport, String login, String termvar = '', int termWidth = 80, int termHeight = 25, String startupCommand, bool compress = false, bool agentForwarding = false, bool closeOnDisconnect, bool startShell = true, List<Forward> forwardLocal, List<Forward> forwardRemote, VoidCallback disconnected, ResponseCallback response, StringCallback print, StringCallback debugPrint, StringCallback tracePrint, VoidCallback success, FingerprintCallback acceptHostFingerprint, IdentityFunction loadIdentity, Uint8ListFunction getPassword, SocketInterface socketInput, Random random, SecureRandom secureRandom})

Properties

acceptedHostkey bool
read / write
acceptHostFingerprint FingerprintCallback
read / write
agentForwarding bool
read / write
channels HashMap<int, Channel>
read / write, inherited
cipherIdC2s int
read / write, inherited
cipherIdS2c int
read / write, inherited
client bool
Whether we've initiated the connection.
read-only, inherited
closeOnDisconnect bool
read / write
compress bool
Whether compression is supported.
read / write, inherited
compressIdC2s int
read / write, inherited
compressIdS2c int
read / write, inherited
debugPrint StringCallback
Paramtgegr invoked with debug logging.
read / write, inherited
decrypt BlockCipher
read / write, inherited
decryptBlockSize int
read / write, inherited
decryptBuf Uint8List
read / write, inherited
dh DiffieHellman
read / write, inherited
disconnected VoidCallback
Parameter invoked on connection close.
read / write, inherited
ecdh EllipticCurveDiffieHellman
read / write, inherited
encrypt BlockCipher
read / write, inherited
encryptBlockSize int
read / write, inherited
exH Uint8List
read / write, inherited
forwardingRemote HashMap<int, Forward>
read / write, inherited
forwardLocal List<Forward>
Parameter describing local ports to forward over SSH tunnel.
read / write, inherited
forwardRemote List<Forward>
Parameter describing remote ports to forward over SSH tunnel.
read / write, inherited
getPassword Uint8ListFunction
read / write
guessedC bool
read / write, inherited
guessedRightC bool
read / write, inherited
guessedRightS bool
read / write, inherited
guessedS bool
read / write, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
hostkeyType int
read / write, inherited
hostport Uri
Remote endpoint of SSH connection. Parameter on client-side.
read / write, inherited
identity Identity
Parameter for public key authentication
read / write, inherited
initialWindowSize int
read / write, inherited
integrityC2s Uint8List
read / write, inherited
integrityS2c Uint8List
read / write, inherited
K BigInt
read / write, inherited
kexHash Digest
read / write, inherited
kexInitC Uint8List
read / write, inherited
kexInitS Uint8List
read / write, inherited
kexMethod int
read / write, inherited
loadedPw bool
read / write
loadIdentity IdentityFunction
read / write
login String
read / write
loginPrompts int
read / write
macAlgoC2s HMac
read / write, inherited
macAlgoS2c HMac
read / write, inherited
macHashLenC int
read / write, inherited
macHashLenS int
read / write, inherited
macIdC2s int
read / write, inherited
macIdS2c int
read / write, inherited
macPrefixC2s int
read / write, inherited
macPrefixS2c int
read / write, inherited
maxPacketSize int
read / write, inherited
nextChannelId int
read / write, inherited
packetId int
read / write, inherited
packetLen int
read / write, inherited
packetMacLen int
read / write, inherited
packetS SerializableInput
read / write, inherited
padding int
read / write, inherited
passwordPrompts int
read / write
print StringCallback
Parameter invoked with ERROR and INFO loggging.
read / write, inherited
pw Uint8List
read / write
random Random
Source of randomness, e.g Random.secure().
read / write, inherited
readBuffer QueueBuffer
read / write, inherited
remoteForward RemoteForwardCallback
Paramter invoked upon connection to forwarded remote port.
read / write, inherited
response ResponseCallback
Parameter invoked with session channel data (and optionally UI prompts).
read / write, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
secureRandom SecureRandom
Pointycastle's random interface.
read / write, inherited
sequenceNumberC2s int
read / write, inherited
sequenceNumberS2c int
read / write, inherited
server bool
read / write, inherited
serverVersion num
read / write, inherited
sessionChannel Channel
read / write, inherited
sessionId Uint8List
read / write, inherited
socket SocketInterface
read / write, inherited
startShell bool
read / write
startupCommand String
read / write
state int
read / write, inherited
success List<VoidCallback>
read / write
termHeight int
read / write
termvar String
read / write
termWidth int
read / write
tracePrint StringCallback
Paramtger invoked with trace logging.
read / write, inherited
userauthFail int
read / write
verC String
read / write, inherited
verS String
read / write, inherited
wrotePw bool
read / write
x25519dh X25519DiffieHellman
read / write, inherited
zreader ↔ dynamic
read / write, inherited
zwriter ↔ dynamic
read / write, inherited

Methods

acceptChannel(MSG_CHANNEL_OPEN msg) Channel
Accepts MSG_CHANNEL_OPEN request to open a new Channel.
inherited
clearPassword() → void
"Securely" clears the local password storage.
closeChannel(Channel channel) → void
Send EOF and close for channel.
inherited
computeExchangeHashAndVerifyHostKey(Uint8List kS, Uint8List hSig) bool
Updates exH and verifies kS's hSig. On success MSG_NEWKEYS is sent.
disconnect(String reason) → void
If anything goes wrong, disconnect with reason.
inherited
getSecureRandom() SecureRandom
PointyCastle random number generator interface.
inherited
getThenSendPassword() → void
Calls sendPassword() if getPassword succeeds.
handleAGENTC_REQUEST_IDENTITIES(Channel channel) → void
Responds with any identities we're forwarding.
inherited
handleAGENTC_SIGN_REQUEST(Channel channel, AGENTC_SIGN_REQUEST msg) → void
Signs challenge authenticating a descendent channel.
inherited
handleAgentPacket(Channel channel, SerializableInput agentPacketS) → void
inherited
handleAgentRead(Channel channel, Uint8List msg) → void
Frames SSH Agent channel data into packets.
inherited
handleChannelClose(Channel chan, [String description]) → void
Handles Channel closed by server.
override
handleChannelData(Channel chan, Uint8List data) → void
Handles all Channel data for this session.
override
handleChannelOpenConfirmation(Channel channel) → void
Handles successfully opened client-initiated Channel.
override
handleConnected() → void
When the connection has been established, both sides MUST send an identification string. https://tools.ietf.org/html/rfc4253#section-4.2
inherited
handleDhGroupMSG_KEX_DH_GEX_GROUP(MSG_KEX_DH_GEX_GROUP msg) → void
Completes Diffie-Hellman Group Exchange and begins key exchange.
handleDhMSG_KEXDH_REPLY(MSG_KEXDH_REPLY msg) Uint8List
Completes Diffie-Hellman key exchange.
handleEcDhMSG_KEX_ECDH_REPLY(MSG_KEX_ECDH_REPLY msg) Uint8List
Completes Elliptic-curve Diffie–Hellman key exchange.
handleInitialState() → void
Consumes the initial Protocol Version Exchange. https://tools.ietf.org/html/rfc4253#section-4.2
inherited
handleMSG_CHANNEL_CLOSE(MSG_CHANNEL_CLOSE msg) → void
Upon receiving this message, a party MUST send back an SSH_MSG_CHANNEL_CLOSE unless it has already sent this message for the channel.
inherited
handleMSG_CHANNEL_DATA(MSG_CHANNEL_DATA msg) → void
Data transfer is done with messages of the type SSH_MSG_CHANNEL_DATA.
inherited
handleMSG_CHANNEL_EOF(MSG_CHANNEL_EOF msg) → void
No explicit response is sent to this message. However, the application may send EOF to whatever is at the other end of the channel.
inherited
handleMSG_CHANNEL_OPEN(MSG_CHANNEL_OPEN msg, SerializableInput packetS) → void
Handles server-initiated Channel to client. e.g. for remote port forwarding, or SSH agent request.
handleMSG_CHANNEL_OPEN_CONFIRMATION(MSG_CHANNEL_OPEN_CONFIRMATION msg) → void
If the remote side can open the channel, it responds with SSH_MSG_CHANNEL_OPEN_CONFIRMATION.
inherited
handleMSG_CHANNEL_OPEN_FAILURE(MSG_CHANNEL_OPEN_FAILURE msg) → void
If the remote side can't open the channel, it responds with SSH_MSG_CHANNEL_OPEN_FAILURE.
inherited
handleMSG_CHANNEL_REQUEST(MSG_CHANNEL_REQUEST msg) → void
Logs any (unhandled) channel specific requests from server.
handleMSG_CHANNEL_WINDOW_ADJUST(MSG_CHANNEL_WINDOW_ADJUST msg) → void
After receiving this message, the recipient MAY send the given number of bytes more than it was previously allowed to send; the window size is incremented.
inherited
handleMSG_DEBUG(MSG_DEBUG msg) → void
All implementations MUST understand MSG_DEBUG, but they are allowed to ignore it.
inherited
handleMSG_DISCONNECT(MSG_DISCONNECT msg) → void
The recipient MUST NOT accept any data after receiving MSG_DISCONNECT.
inherited
handleMSG_GLOBAL_REQUEST(MSG_GLOBAL_REQUEST msg) → void
https://tools.ietf.org/html/rfc4254#section-4
inherited
handleMSG_IGNORE(MSG_IGNORE msg) → void
MSG_IGNORE can be used as an additional protection measure against advanced traffic analysis techniques.
inherited
handleMSG_KEXDH_REPLY(int packetId, Uint8List packet) → void
https://tools.ietf.org/html/rfc4253#section-8
handleMSG_KEXINIT(MSG_KEXINIT msg, Uint8List packet) → void
https://tools.ietf.org/html/rfc4253#section-7.1
inherited
handleMSG_NEWKEYS() → void
When MSG_NEWKEYS is received, the new keys and algorithms MUST be used for receiving.
inherited
handleMSG_SERVICE_ACCEPT() → void
Handle accepted MSG_SERVICE_REQUEST sent in response to MSG_NEWKEYS.
handleMSG_USERAUTH_FAILURE(MSG_USERAUTH_FAILURE msg) → void
If key authentication failed, then try password authentication.
handleMSG_USERAUTH_INFO_REQUEST(MSG_USERAUTH_INFO_REQUEST msg) → void
The server can optionally request authentication information from the client.
handleMSG_USERAUTH_SUCCESS() → void
After successfull authentication, open the session channel and start compression.
handlePacket(Uint8List packet) → void
https://tools.ietf.org/html/rfc4253#section-6
override
handleRead(Uint8List dataChunk) → void
Callback supplied to socket.listen.
inherited
handleSessionStarted() → void
After the session is established, initialize channel state.
handleX25519MSG_KEX_ECDH_REPLY(MSG_KEX_ECDH_REPLY msg) Uint8List
Completes X25519 key exchange.
initCipher(int cipherId, Uint8List IV, Uint8List key, bool dir) BlockCipher
Initializes the block cipher used for encrypted transport.
inherited
initializeDiffieHellman(int kexMethod, Random random) → void
inherited
initializeDiffieHellmanGroup(BigInt p, BigInt g, Random random) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
onConnected() → void
Callback supplied to socket.connect.
inherited
openTcpChannel(String sourceHost, int sourcePort, String destHost, int destPort, ChannelCallback cb, {VoidCallback connected, StringCallback error}) Channel
Request remote opens a new TCP channel to destHost:destPort.
inherited
readCipher(Uint8List m) Uint8List
Decrypt data using the negotiated block cipher.
inherited
sendAuthenticationRequest() → void
Sends MSG_USERAUTH_REQUEST optionally using identity or keyboard-interactive.
sendChannelData(Uint8List b) → void
Sends channel data b on sessionChannel. Optionally b is captured by loginPrompts or passwordPrompts.
override
sendDiffileHellmanInit() → void
Initialize a shared-secret negotiation culminating with MSG_NEWKEYS.
override
sendKeyExchangeInit(bool guess) → void
Key exchange begins by each side sending SSH_MSG_KEXINIT.
inherited
sendNewKeys() → void
inherited
sendPassword() → void
Sends MSG_USERAUTH_REQUEST with password pw.
sendToChannel(Channel channel, Uint8List data) → void
Sends data to channel.
inherited
setTerminalWindowSize(int w, int h) → void
Sends window-change MSG_CHANNEL_REQUEST.
toString() String
A string representation of this object. [...]
inherited
updateExchangeHash(Uint8List kS) → void
Computes a new exchange hash exH given the server key kS.
inherited
writeCipher(SSHMessage msg) → void
Encrypt Binary Packet data using the negotiated block cipher and MAC.
inherited
writeClearOrEncrypted(SSHMessage msg) → void
Send a Binary Packet (e.g. KEX_INIT) that is initially sent in the clear, but encryped when keys are being renegotiated.
inherited

Operators

operator ==(Object other) bool
The equality operator. [...]
inherited