Execute a SSH command on a Cluster
This page demonstrates how to execute a SSH command on a Cluster or Node managed by Avalanche-CLI
ALPHA WARNING: This command is currently in experimental mode. Proceed at your own risk.
Prerequisitesβ
Before we begin, you will need to have:
- A Cluster managed by CLI, either a Fuji Cluster using AWS, a Fuji Cluster using GCP, or a Devnet,
SSH Warningβ
Note: An expected warning may be seen when executing the command on a given cluster for the first time:
Warning: Permanently added 'IP' (ED25519) to the list of known hosts.
Get SSH Connection Instructions for All Clustersβ
Just execute node ssh
:
avalanche node ssh
Cluster "<clusterName>" (Devnet)
[i-0cf58a280bf3ef9a1] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem
[i-0e2abd71a586e56b4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem
[i-027417a4f2ca0a478] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem
[i-0360a867aa295d8a4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem
[i-0759b102acfd5b585] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem
Get the AvalancheGo PID for All Nodes in <clusterName>
β
avalanche node ssh <clusterName> pgrep avalanchego
[i-0cf58a280bf3ef9a1] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem pgrep avalanchego
14508
[i-0e2abd71a586e56b4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem pgrep avalanchego
14555
[i-027417a4f2ca0a478] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem pgrep avalanchego
14545
[i-0360a867aa295d8a4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem pgrep avalanchego
14531
[i-0759b102acfd5b585] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem pgrep avalanchego
14555
Please note that commands via ssh
on cluster are executed sequentially by default.
It's possible to run command on all nodes at the same time by using --parallel=true
flag
Get the AvalancheGo Configuration for All Nodes in <clusterName>
β
avalanche node ssh <clusterName> cat /home/ubuntu/.avalanchego/configs/node.json
[i-0cf58a280bf3ef9a1] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem cat /home/ubuntu/.avalanchego/configs/node.json
{
"bootstrap-ids": "",
"bootstrap-ips": "",
"genesis-file": "/home/ubuntu/.avalanchego/configs/genesis.json",
"http-allowed-hosts": "*",
"http-allowed-origins": "*",
"http-host": "",
"log-display-level": "info",
"log-level": "info",
"network-id": "network-1338",
"public-ip": "44.219.113.190",
"track-subnets": "giY8tswWgZmcAWzPkoNrmjjrykited7GJ9799SsFzTiq5a1ML"
}
[i-0e2abd71a586e56b4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem cat /home/ubuntu/.avalanchego/configs/node.json
{
"bootstrap-ids": "NodeID-EzxsrhoumLsQSWxsohfMFrM1rJcaiaBK8",
"bootstrap-ips": "44.219.113.190:9651",
"genesis-file": "/home/ubuntu/.avalanchego/configs/genesis.json",
"http-allowed-hosts": "*",
"http-allowed-origins": "*",
"http-host": "",
"log-display-level": "info",
"log-level": "info",
"network-id": "network-1338",
"public-ip": "3.212.206.161",
"track-subnets": "giY8tswWgZmcAWzPkoNrmjjrykited7GJ9799SsFzTiq5a1ML"
}
[i-027417a4f2ca0a478] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem cat /home/ubuntu/.avalanchego/configs/node.json
{
"bootstrap-ids": "NodeID-EzxsrhoumLsQSWxsohfMFrM1rJcaiaBK8,NodeID-6veKG5dAz1uJvKc7qm7v6wAPDod8hctb9",
"bootstrap-ips": "44.219.113.190:9651,3.212.206.161:9651",
"genesis-file": "/home/ubuntu/.avalanchego/configs/genesis.json",
"http-allowed-hosts": "*",
"http-allowed-origins": "*",
"http-host": "",
"log-display-level": "info",
"log-level": "info",
"network-id": "network-1338",
"public-ip": "54.87.168.26",
"track-subnets": "giY8tswWgZmcAWzPkoNrmjjrykited7GJ9799SsFzTiq5a1ML"
}
[i-0360a867aa295d8a4] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem cat /home/ubuntu/.avalanchego/configs/node.json
{
"bootstrap-ids": "NodeID-EzxsrhoumLsQSWxsohfMFrM1rJcaiaBK8,NodeID-6veKG5dAz1uJvKc7qm7v6wAPDod8hctb9,NodeID-ASseyUweBT82XquiGpmUFjd9QfkUjxiAY",
"bootstrap-ips": "44.219.113.190:9651,3.212.206.161:9651,54.87.168.26:9651",
"genesis-file": "/home/ubuntu/.avalanchego/configs/genesis.json",
"http-allowed-hosts": "*",
"http-allowed-origins": "*",
"http-host": "",
"log-display-level": "info",
"log-level": "info",
"network-id": "network-1338",
"public-ip": "3.225.42.57",
"track-subnets": "giY8tswWgZmcAWzPkoNrmjjrykited7GJ9799SsFzTiq5a1ML"
}
[i-0759b102acfd5b585] ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no [email protected] -i /home/fm/.ssh/fm-us-east-1-avalanche-cli-us-east-1-kp.pem cat /home/ubuntu/.avalanchego/configs/node.json
{
"bootstrap-ids": "NodeID-EzxsrhoumLsQSWxsohfMFrM1rJcaiaBK8,NodeID-6veKG5dAz1uJvKc7qm7v6wAPDod8hctb9,NodeID-ASseyUweBT82XquiGpmUFjd9QfkUjxiAY,NodeID-LfwbUp9dkhmWTSGffer9kNWNzqUQc2TEJ",
"bootstrap-ips": "44.219.113.190:9651,3.212.206.161:9651,54.87.168.26:9651,3.225.42.57:9651",
"genesis-file": "/home/ubuntu/.avalanchego/configs/genesis.json",
"http-allowed-hosts": "*",
"http-allowed-origins": "*",
"http-host": "",
"log-display-level": "info",
"log-level": "info",
"network-id": "network-1338",
"public-ip": "107.21.158.224",
"track-subnets": "giY8tswWgZmcAWzPkoNrmjjrykited7GJ9799SsFzTiq5a1ML"
}
Executing Command on a Single Nodeβ
As we all know command can be executed on single node similar to the examples above
To execute ssh command on a single node, use <nodeID>
, <IP>
or <instanceID>
instead of <clusterName>
as an argument. For example:
avalanche node ssh i-0225fc39626b1edd3 <command>
[or]
avalanche node ssh NodeID-9wdKQ3KJU3GqvgFTc4CUYvmefEFe8t6ka <command>
[or]
avalanche node ssh 54.159.59.123 <command>
In this case --parallel=true
flag will be ignored
Opening SSH Shell for <nodeID>
β
If no command is provided, Avalanche-CLI will open an interactive session for the specified node. For example:
avalanche node ssh i-0225fc39626b1edd3
[or]
avalanche node ssh NodeID-9wdKQ3KJU3GqvgFTc4CUYvmefEFe8t6ka
[or]
avalanche node ssh 54.159.59.123
Please use exit
shell command or Ctrl+D to end this session.
Was this page helpful?