Skip to content

Execute shell commands on one or more remote computers via SSH

License

Notifications You must be signed in to change notification settings

maxrks/node-remote-exec-v2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

remote-exec-v2

remote-exec-v2 is a Node.js package that enables you to execute commands remotely on multiple servers via SSH. This package helps to automate tasks across multiple hosts, while ensuring safe execution by filtering risky commands.

Why remote-exec-v2?

Thanks to https://github.com/tpresley/node-remote-exec, but it had not been updated for a long time and cannot connect to OpenSSH server version 8.8 and newer SSH servers. This package is fresh, parameters may not be fully compatible.

Runtime

Developed with node v22.11.0 under MacOS 15.1, not tested on other platforms.

Features

  • Execute commands on multiple servers
  • Automatically skip risky commands (e.g., rm -rf /, shutdown, etc.)
  • Use force option to override command safety checks

Installation

npm install remote-exec-v2

Usage

const remoteExec = require('remote-exec-v2');

// Define connection options and hosts
const hosts = [
  { host: '192.168.0.111', name: 'Server1', encoding:'gbk' },
  { host: '192.168.0.222', name: 'Server2' }
];

const cmds = [
  'ping 192.168.0.254',
  'rm ~/something.txt' // This will be skipped due to safety checks
];

const options = { force: false }; // Set to true to override risky command checks

// Execute commands
remoteExec(hosts, cmds, options, (err) => {
  if (err) {
    console.error('Error executing commands:', err);
  } else {
    console.log('Commands executed successfully on all hosts.');
  }
});

Options

  • port: SSH port (default is 22).
  • username: SSH username (default is root).
  • privateKey: Path to the private key for authentication.
  • encoding: SSH connection encoding (default is null).
  • force: If set to true, risky commands will be executed. Default is false.

Risky Commands

The following commands are considered risky and will be skipped unless force is set to true:

  • rm -rf /
  • shutdown
  • reboot
  • del
  • format
  • sc delete

Contributing

Thanks to openai/chatgpt for code generation.

If you want to contribute, feel free to fork the repository and create a pull request.

License

MIT License

About

Execute shell commands on one or more remote computers via SSH

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%