This is a node executor / File Copier plugin based on SSHJ library
./gradlew clean && ./gradlew build
cp build/libs/sshj-plugin-x.x.x.jar $RDECK_BASE/libext
This plugin has the same configuration names than the default JSCH plugin, so most of this documentation works for this plugin.
Go to Project Settings > Edit Configuration to set the SSHJ plugin at project level
- Node Executor
- File Copier
- Settings
Use node-executor and file-copier node attributes to use SSHJ plugin at node level.
Demo-Ubuntu:
nodename: Demo-Ubuntu
hostname: 192.168.100.18
description: Ubuntu 20
username: samuel
osFamily: unix
node-executor: sshj-ssh
file-copier: sshj-scp
tags: ubuntu
ssh-authentication: password
ssh-password-storage-path: keys/node/samuel.password
sudo-password-storage-path: keys/node/sudo.password
ssh-password-option: option.password
sudo-command-enabled: 'true'
By default the plugin accepts any host key presented by the node. To only connect to nodes whose host key you trust, enable strict host key checking:
| Node attribute | Project property | Framework property | Description |
|---|---|---|---|
ssh-strict-host-key-checking |
project.ssh-strict-host-key-checking |
framework.ssh-strict-host-key-checking |
true to require the node's host key to be in the known hosts file. Unknown hosts and changed host keys fail the connection. Default false. |
ssh-known-hosts-file |
project.ssh-known-hosts-file |
framework.ssh-known-hosts-file |
Path to an OpenSSH known_hosts file on the Rundeck server. Default: ~/.ssh/known_hosts and ~/.ssh/known_hosts2 of the user running Rundeck. |
Both can also be set in the plugin settings at project or framework level. The known hosts file uses the standard OpenSSH format, so it can be built with ssh-keyscan as the user running Rundeck (check the fingerprints against a trusted source):
ssh-keyscan -H node1.example.com >> ~/.ssh/known_hosts
Nodes on a non-default port are matched as [host]:port, the same as OpenSSH.
- Key Storage Password Authentication
- File Key Authentication
- Key Storage Key Authentication (it works with a creating a temp file from key storage, TODO: hierynomus/sshj#350 (comment))
- Passphrase
- Env Variables
- Sudo Commands (Experimental, works with Java ExpectIt lib)
- Username from input option
- Password from input option
- Sudo Password from input option
- Passphrase from input option
- Keep alive
- File Transfer Single File
- File Transfer Multiples File


