Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rank-math domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u763016847/domains/golinuxhub.com/public_html/wp-includes/functions.php on line 6114
How to test ssh connection using bash script in Linux - GoLinuxHub

How to test ssh connection using bash script in Linux

There can be multiple scenarios due to which ssh connection may fail, some of them can be

  • network issues
  • password incorrect
  • passphrase incorrect
  • and many more..

so we will try to rule out all the possible failed scenarios with some pre-checks before we do the actual task to make sure my ssh doesn't get hang

Ping Test

_HOST=192.168.100.10
ping -q -W 5 -c 1 $_HOST >/dev/null 2>&1

Here I am doing a ping test with a timeout for 5 seconds and will send one packet to the target host to make sure my network is proper between client and server.

Check port connectivity

You can use multiple tools to check the port based connectivity to make sure target port is available

${_PORT}=22
${_HOST}=192.168.100.10

timeout 5 bash -c "</dev/tcp/$_HOST/${_PORT}"

OR

On distributions with netcat rpm

# netcat -w 5 ${_HOST} ${_PORT}
_RETCODE=$?

if [ $_RETCODE -ne "0" ];then
    echo "Port 22 not available"
fi

Test ssh connectivity

Here we will try to do a quick ssh and validate the return code

ssh -q -o BatchMode=yes  -o StrictHostKeyChecking=no -i /export/home/sufuser/.ssh/id_rsa $_HOST 'exit 0'
_RCODE=$?
if [ $_RCODE -ne 0 ]
then
    log_and_print_red "unable to ssh, host is not accessible"
    continue
fi

I hope the article was useful.