README
@nullabyte/ssh
A wrapper around ssh2, a module to SSH into your servers from NodeJS scripts.
Module exports the properties SSH
and Errors
. SSH is a class that accepts a constructor arguments object like:
{
host: "localhost",
port: 22,
username: "user",
ppk: "./path/to/ppk",
passphrase: "password for a locked ppk",
password: "password for the user to use in login/sudo events",
verbose: false
}
If a ppk
property is defined, the private key is used during the SSH connection and the password is ignored.
Available class methods:
SSH.connect()
; connects to the defined hostSSH.close()
; closes the connectionSSH.sudo()
; prepares a command to be run with sudo. Can be chained likeSSH.sudo().command()
SSH.command(commandString)
; runs the command passed as a stringSSH.mv(source, destination, [force = false])
SSH.ls(directory, [extended = false])
SSH.cp(source, destination, [forceRecursive = false])
SSH.rm(target, [forceRecursive = false])
SSH.touch(filename)
SSH.cat(filename)
SSH.mkdir(filename)
SSH.escapePath(pathName)
SSH.uploadFile(localFilePath, destinationFilePath)
; uploads a single file to the server via SFTPSSH.upload(localFilePath, destinationFilePath)
; uploads either a single file or complete directory/ies to the server via SFTPSSH.readDirectory(localFilePath, destinationFilePath)
Specific filesystem action methods, like mv
, cp
, rm
, etc, all automatically escape filepaths in an attempt to subvert command injection.
Generic methods, like command
do not escape your command string, so you should ensure you are properly escaping your commands.