SSH2 and SFTP(v3) client/server protocol streams for node.js.
- node.js -- v0.8.7 or newer
npm install ssh2-streams
require('ssh2').SSH2Stream returns an SSH2Stream constructor.
require('ssh2').SFTPStream returns an SFTPStream constructor.
require('ssh2').utils returns an object of useful utility functions.
require('ssh2').constants returns an object containing useful SSH protocol constants.
Client/Server events
-
header(< object >headerInfo) - Emitted when the protocol header is seen.
headerInfocontains:-
greeting - string - (Client-only) An optional greeting message presented by the server.
-
identRaw - string - The raw identification string sent by the remote party.
-
versions - object - Contains various information parsed from
identRaw:-
protocol - string - The protocol version (always
1.99or2.0) supported by the remote party. -
software - boolean - The software name used by the remote party.
-
-
comments - string - Any additional text that comes after the software name.
-
-
CHANNEL_DATA:(< Buffer >data)
-
CHANNEL_EXTENDED_DATA:(< integer >type, < Buffer >data)
-
CHANNEL_WINDOW_ADJUST:(< integer >bytesToAdd)
-
CHANNEL_SUCCESS:()
-
CHANNEL_FAILURE:()
-
CHANNEL_EOF:()
-
CHANNEL_CLOSE:()
-
CHANNEL_OPEN_CONFIRMATION:(< object >channelInfo) -
channelInfocontains:-
recipient - integer - The local channel number.
-
sender - integer - The remote party's channel number.
-
window - integer - The initial window size for the channel.
-
packetSize - integer - The maximum packet size for the channel.
-
-
CHANNEL_OPEN_FAILURE:(< object >failInfo) -
failInfocontains:-
recipient - integer - The local channel number.
-
reasonCode - integer - The reason code of the failure.
-
reason - string - A text representation of the
reasonCode. -
description - string - An optional description of the failure.
-
-
DISCONNECT(< string >reason, < integer >reasonCode, < string >description)
-
DEBUG(< string >message)
-
NEWKEYS()
Client-only events
-
fingerprint(< Buffer >hostKey, < function >callback) - This event allows you to (synchronously) verify a host's key. If
callbackis called with any value other thanundefinedortrue, a disconnection will occur. The default behavior is to auto-allow any host key. -
SERVICE_ACCEPT(< string >serviceName)
-
USERAUTH_PASSWD_CHANGEREQ(< string >message)
-
USERAUTH_INFO_REQUEST(< string >name, < string >instructions, < string >lang[, < array >prompts])
-
USERAUTH_PK_OK()
-
USERAUTH_SUCCESS()
-
USERAUTH_FAILURE(< array >methodsContinue, < boolean >partialSuccess)
-
USERAUTH_BANNER(< string >message)
-
REQUEST_SUCCESS([< Buffer >resData])
-
REQUEST_FAILURE()
-
CHANNEL_OPEN(< object >channelInfo) -
channelInfocontains:-
type - string - The channel type (e.g.
x11,forwarded-tcpip). -
sender - integer - The remote party's channel number.
-
window - integer - The initial window size for the channel.
-
packetSize - integer - The maximum packet size for the channel.
-
data - object - The properties available depend on
type:-
x11:-
srcIP - string - Source IP address of X11 connection request.
-
srcPort - string - Source port of X11 connection request.
-
-
forwarded-tcpip:-
srcIP - string - Source IP address of incoming connection.
-
srcPort - string - Source port of incoming connection.
-
destIP - string - Destination IP address of incoming connection.
-
destPort - string - Destination port of incoming connection.
-
-
forwarded-streamlocal@openssh.com:- socketPath - string - Source socket path of incoming connection.
-
auth-agent@openssh.comhas no extra data.
-
-
-
CHANNEL_REQUEST:(< object >reqInfo) -
reqInfoproperties depend onreqInfo.request:-
exit-status:- code - integer - The exit status code of the remote process.
-
exit-signal:-
signal - string - The signal name.
-
coredump - boolean - Was the exit the result of a core dump?
-
description - string - An optional error message.
-
-
Server-only events
-
SERVICE_REQUEST(< string >serviceName)
-
USERAUTH_REQUEST(< string >username, < string >serviceName, < string >authMethod, < mixed >authMethodData) -
authMethodDatadepends onauthMethod:-
For
password, it's a string containing the password. -
For
publickey, it's an object containing:-
keyAlgo - string - The public key algorithm.
-
key - Buffer - The public key data.
-
signature - mixed - If set, it is a Buffer containing the signature to be verified.
-
blob - mixed - If set, it is a Buffer containing the data to sign. The resulting signature is what is compared to
signature.
-
-
-
USERAUTH_INFO_RESPONSE([< array >responses])
-
GLOBAL_REQUEST(< string >reqName, < boolean >wantReply, < mixed >reqData) -
reqDatadepends onreqName:-
For
tcpip-forward/cancel-tcpip-forward, it's an object containing:-
bindAddr - string - The IP address to start/stop binding to.
-
bindPort - string - The port to start/stop binding to.
-
-
For
streamlocal-forward@openssh.com/cancel-streamlocal-forward@openssh.com, it's an object containing:- socketPath - string - The socket path to start/stop listening on.
-
For
no-more-sessions@openssh.com, there is noreqData. -
For any other requests, it's a Buffer containing the raw request-specific data.
-
-
CHANNEL_OPEN(< object >channelInfo) -
channelInfocontains:-
type - string - The channel type (e.g.
session,direct-tcpip). -
sender - integer - The remote party's channel number.
-
window - integer - The initial window size for the channel.
-
packetSize - integer - The maximum packet size for the channel.
-
data - object - The properties available depend on
type:-
direct-tcpip:-
srcIP - string - Source IP address of outgoing connection.
-
srcPort - string - Source port of outgoing connection.
-
destIP - string - Destination IP address of outgoing connection.
-
destPort - string - Destination port of outgoing connection.
-
-
direct-streamlocal@openssh.com:- socketPath - string - Destination socket path of outgoing connection.
-
sessionhas no extra data.
-
-
-
CHANNEL_REQUEST:(< object >reqInfo) -
reqInfoproperties depend onreqInfo.request:-
pty-req:-
wantReply - boolean - The client is requesting a response to this request.
-
term - string - The terminal type name.
-
cols - integer - The number of columns.
-
rows - integer - The number of rows.
-
width - integer - The width in pixels.
-
height - integer - The height in pixels.
-
modes - object - The terminal modes.
-
-
window-change:-
cols - integer - The number of columns.
-
rows - integer - The number of rows.
-
width - integer - The width in pixels.
-
height - integer - The height in pixels.
-
-
x11-req:-
wantReply - boolean - The client is requesting a response to this request.
-
single - boolean - Whether only a single X11 connection should be allowed.
-
protocol - string - The X11 authentication protocol to be used.
-
cookie - string - The hex-encoded X11 authentication cookie.
-
screen - integer - The screen number for incoming X11 connections.
-
-
env:-
wantReply - boolean - The client is requesting a response to this request.
-
key - string - The environment variable name.
-
val - string - The environment variable value.
-
-
shell:- wantReply - boolean - The client is requesting a response to this request.
-
exec:-
wantReply - boolean - The client is requesting a response to this request.
-
command - string - The command to be executed.
-
-
subsystem:-
wantReply - boolean - The client is requesting a response to this request.
-
subsystem - string - The name of the subsystem.
-
-
signal:- signal - string - The signal name (prefixed with
SIG).
- signal - string - The signal name (prefixed with
-
xon-xoff:- clientControl - boolean - Client can/can't perform flow control (control-S/control-Q processing).
-
auth-agent-req@openssh.comhas noreqInfo.
-
-
(constructor)(< object >config) - Creates and returns a new SSH2Stream instance. SSH2Stream instances are Duplex streams.
configcan contain:-
server - boolean - Set to
trueto create an instance in server mode. Default:false -
privateKey - mixed - If in server mode, a Buffer or string that contains the required host private key (OpenSSH format). Default: (none)
-
passphrase - string - For an encrypted host private key, this is the passphrase used to decrypt it. Default: (none)
-
banner - string - If in server mode, an optional message to send to the user immediately upon connection, before the handshake. Default: (none)
-
ident - string - A custom software name/version identifier. Default:
'ssh2js' + moduleVersion + 'srv'(server mode)'ssh2js' + moduleVersion(client mode) -
maxPacketSize - string - This is the maximum packet size that will be accepted. It should be 35000 bytes or larger to be compatible with other SSH2 implementations. Default:
35000 -
highWaterMark - integer - This is the
highWaterMarkto use for the stream. Default:32 * 1024 -
debug - function - Set this to a function that receives a single string argument to get detailed (local) debug information. Default: (none)
-
Client/Server methods
-
ping() - boolean - Writes a ping packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
disconnect([< integer >reasonCode]) - boolean - Writes a disconnect packet and closes the stream. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
channelEOF(< integer >channel) - boolean - Writes a channel EOF packet for the given
channel. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
channelClose(< integer >channel) - boolean - Writes a channel close packet for the given
channel. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
channelWindowAdjust(< integer >channel, < integer >amount) - boolean - Writes a channel window adjust packet for the given
channelwhereamountis the number of bytes to add to the channel window. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
channelData(< integer >channel, < mixed >data) - boolean - Writes a channel data packet for the given
channelwheredatais a Buffer or string. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
channelExtData(< integer >channel, < mixed >data, < integer >type) - boolean - Writes a channel extended data packet for the given
channelwheredata is a _Buffer_ or _string_. Returnsfalseif you should wait for thedrain` event before sending any more traffic. -
channelOpenConfirm(< integer >remoteChannel, < integer >localChannel, < integer >initWindow, < integer >maxPacket) - boolean - Writes a channel open confirmation packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
channelOpenFail(< integer >remoteChannel, < integer >reasonCode[, < string >description]) - boolean - Writes a channel open failure packet. Returns
falseif you should wait for thedrainevent before sending any more traffic.
Client-only methods
-
service(< string >serviceName) - boolean - Writes a service request packet for
serviceName. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
tcpipForward(< string >bindAddr, < integer >bindPort[, < boolean >wantReply]) - boolean - Writes a tcpip forward global request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
cancelTcpipForward(< string >bindAddr, < integer >bindPort[, < boolean >wantReply]) - boolean - Writes a cancel tcpip forward global request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
authPassword(< string >username, < string >password) - boolean - Writes a password userauth request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authPK(< string >username, < object >pubKey[, < function >cbSign]) - boolean - Writes a publickey userauth request packet.
pubKeyis the object returned from usingutils.parseKey()on a private or public key. IfcbSignis not present, a pubkey check userauth packet is written. OtherwisecbSignis called with(blob, callback), whereblobis the data to sign with the private key and the resulting signature Buffer is passed tocallbackas the first argument. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
authKeyboard(< string >username) - boolean - Writes a keyboard-interactive userauth request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authNone(< string >username) - boolean - Writes a "none" userauth request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authInfoRes(< array >responses) - boolean - Writes a userauth info response packet.
responsesis an array of zero or more strings corresponding to responses to prompts previously sent by the server. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
directTcpip(< integer >channel, < integer >initWindow, < integer >maxPacket, < object >config) - boolean - Writes a direct tcpip channel open packet.
configmust containsrcIP,srcPort,dstIP, anddstPort. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
session(< integer >channel, < integer >initWindow, < integer >maxPacket) - boolean - Writes a session channel open packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
openssh_agentForward(< integer >channel[, < boolean >wantReply]) - boolean - Writes an
auth-agent-req@openssh.comchannel request packet.wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
windowChange(< integer >channel, < integer >rows, < integer >cols, < integer >height, < integer >width) - boolean - Writes a window change channel request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
pty(< integer >channel, < integer >rows, < integer >cols, < integer >height, < integer >width, < string >terminalType, < mixed >terminalModes[, < boolean >wantReply]) - boolean - Writes a pty channel request packet. If
terminalTypeis falsey,vt100is used.terminalModescan be the raw bytes, an object of the terminal modes to set, or a falsey value for no modes.wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
env(< integer >channel, < string >key, < mixed >value[, < boolean >wantReply]) - boolean - Writes an env channel request packet.
valuecan be a string or Buffer.wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
shell(< integer >channel[, < boolean >wantReply]) - boolean - Writes a shell channel request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
exec(< integer >channel, < string >command[, < boolean >wantReply]) - boolean - Writes an exec channel request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
signal(< integer >channel, < string >signalName) - boolean - Writes a signal channel request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
x11Forward(< integer >channel, < object >config[, < boolean >wantReply]) - boolean - Writes an X11 forward channel request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic.configcan contain:-
single - boolean -
trueif only a single connection should be forwarded. -
protocol - string - The name of the X11 authentication method used (e.g.
MIT-MAGIC-COOKIE-1). -
cookie - string - The X11 authentication cookie encoded in hexadecimal.
-
screen - integer - The screen number to forward X11 connections for.
-
-
subsystem(< integer >channel, < string >name[, < boolean >wantReply]) - boolean - Writes a subsystem channel request packet.
nameis the name of the subsystem (e.g.sftpornetconf).wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
openssh_noMoreSessions([< boolean >wantReply]) - boolean - Writes a no-more-sessions@openssh.com request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
openssh_streamLocalForward(< string >socketPath[, < boolean >wantReply]) - boolean - Writes a streamlocal-forward@openssh.com request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
openssh_cancelStreamLocalForward(< string >socketPath[, < boolean >wantReply]) - boolean - Writes a cancel-streamlocal-forward@openssh.com request packet.
wantReplydefaults totrue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
openssh_directStreamLocal(< integer >channel, < integer >initWindow, < integer >maxPacket, < object >config) - boolean - Writes a direct-streamlocal@openssh.com channel open packet.
configmust containsocketPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.
Server-only methods
-
serviceAccept(< string >serviceName) - boolean - Writes a service accept packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authFailure([< array >authMethods[, < boolean >partialSuccess]]) - boolean - Writes a userauth failure packet.
authMethodsis an array of authentication methods that can continue. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
authSuccess() - boolean - Writes a userauth success packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authPKOK(< string >keyAlgorithm, < Buffer >keyData) - boolean - Writes a userauth PK OK packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
authInfoReq(< string >name, < string >instructions, < array >prompts) - boolean - Writes a userauth info request packet.
promptsis an array of{ prompt: 'Prompt text', echo: true }objects (promptbeing the prompt text andechoindicating whether the client's response to the prompt should be echoed to their display). Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
requestSuccess([< Buffer >data]) - boolean - Writes a request success packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
requestFailure() - boolean - Writes a request failure packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
forwardedTcpip(< integer >channel, < integer >initWindow, < integer >maxPacket, < object >info) - boolean - Writes a forwarded tcpip channel open packet.
infomust containboundAddr,boundPort,remoteAddr, andremotePort. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
x11(< integer >channel, < integer >initWindow, < integer >maxPacket, < object >info) - boolean - Writes an X11 channel open packet.
infomust containoriginAddrandoriginPort. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
openssh_forwardedStreamLocal(< integer >channel, < integer >initWindow, < integer >maxPacket, < object >info) - boolean - Writes an forwarded-streamlocal@openssh.com channel open packet.
infomust containsocketPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
channelSuccess() - boolean - Writes a channel success packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
channelFailure() - boolean - Writes a channel failure packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
exitStatus(< integer >channel, < integer >exitCode) - boolean - Writes an exit status channel request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic. -
exitSignal(< integer >channel, < string >signalName, < boolean >coreDumped, < string >errorMessage) - boolean - Writes an exit signal channel request packet. Returns
falseif you should wait for thedrainevent before sending any more traffic.
Client/Server events
- ready() - Emitted after initial protocol version check has passed.
Server-only events
-
OPEN(< integer >reqID, < string >filename, < integer >flags, < ATTRS>attrs)
-
READ(< integer >reqID, < Buffer >handle, < integer >offset, < integer >length)
-
WRITE(< integer >reqID, < Buffer >handle, < integer >offset, < Buffer >data)
-
FSTAT(< integer >reqID, < Buffer >handle)
-
FSETSTAT(< integer >reqID, < Buffer >handle, < ATTRS >attrs)
-
CLOSE(< integer >reqID, < Buffer >handle)
-
OPENDIR(< integer >reqID, < string >path)
-
READDIR(< integer >reqID, < Buffer >handle)
-
LSTAT(< integer >reqID, < string >path)
-
STAT(< integer >reqID, < string >path)
-
REMOVE(< integer >reqID, < string >path)
-
RMDIR(< integer >reqID, < string >path)
-
REALPATH(< integer >reqID, < string >path)
-
READLINK(< integer >reqID, < string >path)
-
SETSTAT(< integer >reqID, < string >path, < ATTRS >attrs)
-
MKDIR(< integer >reqID, < string >path, < ATTRS >attrs)
-
RENAME(< integer >reqID, < string >oldPath, < string >newPath)
-
SYMLINK(< integer >reqID, < string >linkPath, < string >targetPath)
-
SFTPStream.STATUS_CODE - object - Contains the various status codes (for use especially with
status()):-
OK -
EOF -
NO_SUCH_FILE -
PERMISSION_DENIED -
FAILURE -
BAD_MESSAGE -
OP_UNSUPPORTED
-
-
SFTPStream.OPEN_MODE - object - Contains the various open file flags:
-
READ -
WRITE -
APPEND -
CREAT -
TRUNC -
EXCL
-
-
(constructor)(< object >config[, < string >remoteIdentRaw]) - Creates and returns a new SFTPStream instance. SFTPStream instances are Duplex streams.
remoteIdentRawcan be the raw SSH identification string of the remote party. This is used to change internal behavior based on particular SFTP implementations.configcan contain:-
server - boolean - Set to
trueto create an instance in server mode. Default:false -
highWaterMark - integer - This is the
highWaterMarkto use for the stream. Default:32 * 1024 -
debug - function - Set this to a function that receives a single string argument to get detailed (local) debug information. Default: (none)
-
Client-only methods
-
fastGet(< string >remotePath, < string >localPath[, < object >options], < function >callback) - (void) - Downloads a file at
remotePathtolocalPathusing parallel reads for faster throughput.optionscan have the following properties:-
concurrency - integer - Number of concurrent reads Default:
25 -
chunkSize - integer - Size of each read in bytes Default:
32768 -
step - function(< integer >total_transferred, < integer >chunk, < integer >total) - Called every time a part of a file was transferred
callbackhas 1 parameter: < Error >err. -
-
fastPut(< string >localPath, < string >remotePath[, < object >options], < function >callback) - (void) - Uploads a file from
localPathtoremotePathusing parallel reads for faster throughput.optionscan have the following properties:-
concurrency - integer - Number of concurrent reads Default:
25 -
chunkSize - integer - Size of each read in bytes Default:
32768 -
step - function(< integer >total_transferred, < integer >chunk, < integer >total) - Called every time a part of a file was transferred
callbackhas 1 parameter: < Error >err. -
-
createReadStream(< string >path[, < object >options]) - ReadStream - Returns a new readable stream for
path.optionshas the following defaults:{ flags: 'r', encoding: null, handle: null, mode: 0666, autoClose: true }
optionscan includestartandendvalues to read a range of bytes from the file instead of the entire file. Bothstartandendare inclusive and start at 0. Theencodingcan be'utf8','ascii', or'base64'.If
autoCloseis false, then the file handle won't be closed, even if there's an error. It is your responsiblity to close it and make sure there's no file handle leak. IfautoCloseis set to true (default behavior), onerrororendthe file handle will be closed automatically.An example to read the last 10 bytes of a file which is 100 bytes long:
sftp.createReadStream('sample.txt', {start: 90, end: 99});
-
createWriteStream(< string >path[, < object >options]) - WriteStream - Returns a new writable stream for
path.optionshas the following defaults:{ flags: 'w', encoding: null, mode: 0666 }
optionsmay also include astartoption to allow writing data at some position past the beginning of the file. Modifying a file rather than replacing it may require a flags mode of 'r+' rather than the default mode 'w'.If 'autoClose' is set to false and you pipe to this stream, this stream will not automatically close after there is no more data upstream -- allowing future pipes and/or manual writes.
-
open(< string >filename, < string >mode, [< ATTRS >attributes, ]< function >callback) - boolean - Opens a file
filenameformodewith optionalattributes.modeis any of the modes supported by fs.open (except sync mode). Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < Buffer >handle. -
close(< Buffer >handle, < function >callback) - boolean - Closes the resource associated with
handlegiven by open() or opendir(). Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
readData(< Buffer >handle, < Buffer >buffer, < integer >offset, < integer >length, < integer >position, < function >callback) - boolean - Reads
lengthbytes from the resource associated withhandlestarting atpositionand stores the bytes inbufferstarting atoffset. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 4 parameters: < Error >err, < integer >bytesRead, < Buffer >buffer (offset adjusted), < integer >position. -
writeData(< Buffer >handle, < Buffer >buffer, < integer >offset, < integer >length, < integer >position, < function >callback) - boolean - Writes
lengthbytes frombufferstarting atoffsetto the resource associated withhandlestarting atposition. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
fstat(< Buffer >handle, < function >callback) - boolean - Retrieves attributes for the resource associated with
handle. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < Stats >stats. -
fsetstat(< Buffer >handle, < ATTRS >attributes, < function >callback) - boolean - Sets the attributes defined in
attributesfor the resource associated withhandle. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
futimes(< Buffer >handle, < mixed >atime, < mixed >mtime, < function >callback) - boolean - Sets the access time and modified time for the resource associated with
handle.atimeandmtimecan be Date instances or UNIX timestamps. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
fchown(< Buffer >handle, < integer >uid, < integer >gid, < function >callback) - boolean - Sets the owner for the resource associated with
handle. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
fchmod(< Buffer >handle, < mixed >mode, < function >callback) - boolean - Sets the mode for the resource associated with
handle.modecan be an integer or a string containing an octal number. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
opendir(< string >path, < function >callback) - boolean - Opens a directory
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < Buffer >handle. -
readdir(< mixed >location, < function >callback) - boolean - Retrieves a directory listing.
locationcan either be a Buffer containing a valid directory handle from opendir() or a string containing the path to a directory. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < mixed >list.listis an Array of{ filename: 'foo', longname: '....', attrs: {...} }style objects (attrs is of type ATTR). Iflocationis a directory handle, this function may need to be called multiple times untillistis boolean false, which indicates that no more directory entries are available for that directory handle. -
unlink(< string >path, < function >callback) - boolean - Removes the file/symlink at
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
rename(< string >srcPath, < string >destPath, < function >callback) - boolean - Renames/moves
srcPathtodestPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
mkdir(< string >path, [< ATTRS >attributes, ]< function >callback) - boolean - Creates a new directory
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
rmdir(< string >path, < function >callback) - boolean - Removes the directory at
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
stat(< string >path, < function >callback) - boolean - Retrieves attributes for
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameter: < Error >err, < Stats >stats. -
lstat(< string >path, < function >callback) - boolean - Retrieves attributes for
path. Ifpathis a symlink, the link itself is stat'ed instead of the resource it refers to. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < Stats >stats. -
setstat(< string >path, < ATTRS >attributes, < function >callback) - boolean - Sets the attributes defined in
attributesforpath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
utimes(< string >path, < mixed >atime, < mixed >mtime, < function >callback) - boolean - Sets the access time and modified time for
path.atimeandmtimecan be Date instances or UNIX timestamps. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
chown(< string >path, < integer >uid, < integer >gid, < function >callback) - boolean - Sets the owner for
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
chmod(< string >path, < mixed >mode, < function >callback) - boolean - Sets the mode for
path.modecan be an integer or a string containing an octal number. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
readlink(< string >path, < function >callback) - boolean - Retrieves the target for a symlink at
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < string >target. -
symlink(< string >targetPath, < string >linkPath, < function >callback) - boolean - Creates a symlink at
linkPathtotargetPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
realpath(< string >path, < function >callback) - boolean - Resolves
pathto an absolute path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < string >absPath. -
ext_openssh_rename(< string >srcPath, < string >destPath, < function >callback) - boolean - OpenSSH extension Performs POSIX rename(3) from
srcPathtodestPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
ext_openssh_statvfs(< string >path, < function >callback) - boolean - OpenSSH extension Performs POSIX statvfs(2) on
path. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < object >fsInfo.fsInfocontains the information as found in the statvfs struct. -
ext_openssh_fstatvfs(< Buffer >handle, < function >callback) - boolean - OpenSSH extension Performs POSIX fstatvfs(2) on open handle
handle. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 2 parameters: < Error >err, < object >fsInfo.fsInfocontains the information as found in the statvfs struct. -
ext_openssh_hardlink(< string >targetPath, < string >linkPath, < function >callback) - boolean - OpenSSH extension Performs POSIX link(2) to create a hard link to
targetPathatlinkPath. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err. -
ext_openssh_fsync(< Buffer >handle, < function >callback) - boolean - OpenSSH extension Performs POSIX fsync(3) on the open handle
handle. Returnsfalseif you should wait for thedrainevent before sending any more traffic.callbackhas 1 parameter: < Error >err.
Server-only methods
-
status(< integer >reqID, < integer >statusCode[, < string >message]) - boolean - Sends a status response for the request identified by
id. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
handle(< integer >reqID, < Buffer >handle) - boolean - Sends a handle response for the request identified by
id.handlemust be less than 256 bytes. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
data(< integer >reqID, < mixed >data[, < string >encoding]) - boolean - Sends a data response for the request identified by
id.datacan be a Buffer or string. Ifdatais a string,encodingis the encoding ofdata. Returnsfalseif you should wait for thedrainevent before sending any more traffic. -
name(< integer >reqID, < array >names) - boolean - Sends a name response for the request identified by
id. Returnsfalseif you should wait for thedrainevent before sending any more traffic.namesmust be an array of object where each object can contain:-
filename - string - The entry's name.
-
longname - string - This is the
ls -l-style format for the entry (e.g.-rwxr--r-- 1 bar bar 718 Dec 8 2009 foo) -
attrs - ATTRS - This is an optional ATTRS object that contains requested/available attributes for the entry.
-
-
attrs(< integer >reqID, < ATTRS >attrs) - boolean - Sends an attrs response for the request identified by
id.attrscontains the requested/available attributes.
-
parseKey(< mixed >keyData) - object - Parses a private/public key in OpenSSH and RFC4716 formats.
-
decryptKey(< object >privKeyInfo, < string >passphrase) - (void) - Takes a private key parsed with
parseKey()and decrypts it withpassphrase. The decrypted key data overwrites the original encrypted copy. -
genPublicKey(< object >privKeyInfo) - object - Takes a private key parsed with
parseKey()and generates the associated public key and returns the public key information in the same format asparseKey().
An object with the following valid properties:
-
mode - integer - Mode/permissions for the resource.
-
uid - integer - User ID of the resource.
-
gid - integer - Group ID of the resource.
-
size - integer - Resource size in bytes.
-
atime - integer - UNIX timestamp of the access time of the resource.
-
mtime - integer - UNIX timestamp of the modified time of the resource.
When supplying an ATTRS object to one of the SFTP methods:
-
atimeandmtimecan be either a Date instance or a UNIX timestamp. -
modecan either be an integer or a string containing an octal number.
An object with the same attributes as an ATTRS object with the addition of the following methods:
-
stats.isDirectory() -
stats.isFile() -
stats.isBlockDevice() -
stats.isCharacterDevice() -
stats.isSymbolicLink() -
stats.isFIFO() -
stats.isSocket()