In some cases, we need run commands on a remote server.
Examples:
Get disk information
Get all running process
…
Syntax for running commands on a remote server:
ssh [USER@][HOSTNAME-OR-IP] command
Full options:
[root@tutorialspots ~]# ssh usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command]
Example 1: Get disk information
ssh root@tutorialspots.com df -h
Result:
[root@tutorialspots ~]# ssh root@tutorialspots.com df -h The authenticity of host 'tutorialspots.com (51.91.115.214)' can't be established. ECDSA key fingerprint is SHA256:yxg/X3UwKkrQWI8LoQdmerXPgr6IMM2mc2XxRpPpslk. ECDSA key fingerprint is MD5:86:09:6d:c1:05:1f:e0:e7:04:6c:6f:33:8d:7a:9e:33. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'tutorialspots.com' (ECDSA) to the list of known hosts. root@tutorialspots.com's password: Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 556K 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/md2 5.4T 1.6T 3.6T 31% / /dev/md1 487M 148M 314M 32% /boot tmpfs 3.2G 0 3.2G 0% /run/user/0
To skip Strict HostKey Checking:
ssh -o StrictHostKeyChecking=no root@tutorialspots.com df -h
Example 2: check load average
[root@tutorialspots ~]# ssh root@tutorialspots.com cat /proc/loadavg root@tutorialspots.com's password: 0.75 0.52 0.58 1/296 15713
If you want to use password in command line, you should install sshpass:
[root@tutorialspots ~]# yum install -y sshpass Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile epel/x86_64/metalink | 13 kB 00:00 * base: linux.darkpenguin.net * epel: mirror.imt-systems.com * extras: mirror.checkdomain.de * updates: mirror.fra10.de.leaseweb.net base | 3.6 kB 00:00 epel | 4.7 kB 00:00 extras | 2.9 kB 00:00 ius | 1.3 kB 00:00 nodesource | 2.5 kB 00:00 updates | 2.9 kB 00:00 (1/3): updates/7/x86_64/primary_db | 2.9 MB 00:00 (2/3): epel/x86_64/primary_db | 6.8 MB 00:00 (3/3): epel/x86_64/updateinfo | 1.0 MB 00:00 Resolving Dependencies --> Running transaction check ---> Package sshpass.x86_64 0:1.06-2.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: sshpass x86_64 1.06-2.el7 extras 21 k Transaction Summary ================================================================================ Install 1 Package Total download size: 21 k Installed size: 38 k Downloading packages: sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : sshpass-1.06-2.el7.x86_64 1/1 Verifying : sshpass-1.06-2.el7.x86_64 1/1 Installed: sshpass.x86_64 0:1.06-2.el7 Complete!
Example 3: use password in command line
sshpass -p yourpassword ssh -o StrictHostKeyChecking=no root@ip "free -m"
Result:
[root@tutorialspots ~]# sshpass -p yourpassword ssh -o StrictHostKeyChecking=no root@tutorialspots.com 'free -m' total used free shared buff/cache available Mem: 31923 888 471 0 30563 30643 Swap: 32733 5 32728
To ignore this warning:
Warning: Permanently added '171.19.110.177' (ECDSA) to the list of known hosts.
Follow Example 4:
Example 4:
ssh -o LogLevel=quiet user@ip_or_hostname
Full example:
sshpass -p yourpass ssh -o StrictHostKeyChecking=no -o LogLevel=quiet root@137.213.62.215 "cat /root/ok/okdead.txt" > /root/ok/ok2.txt
Read more: Linux: how to install and use sshpass