Assistance with testing ssh connections and what the return codes mean


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Assistance with testing ssh connections and what the return codes mean
# 1  
Old 10-27-2019
Assistance with testing ssh connections and what the return codes mean

Hello Forum,

I'm using a bit of code from a script I found that allows me to capture the status code of connecting via SSH to remote servers:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@$InputIP 'ls -l /home/user >/dev/null 2>&1' > /dev/null 2>&1

status="$(echo $?)"

echo $status

When I echo out the status codes I can see codes such as the following:

Code:
0 - Success
255 - Error Can't login (not sure why though)
1 - Password Expired

The reasons for each I've gathered from my own experience and from notes in the script I'm using that listed these reasons. But could someone point me to documentation that would help me identify more definitively what the reason codes mean when I connect through SSH and get a return code.

Thank you.
# 2  
Old 10-28-2019
From man ssh:

Code:
EXIT STATUS
     ssh exits with the exit status of the remote command or with 255 if an
     error occurred.

so:
Code:
$ ssh non-existant-user@mymachine
non-existant-user@mymachine: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
$ echo $?
255

$ ssh mymachine exit 3
$ echo $?
3

Don't know why you get exit status of 1 when the password has expired - perhaps this is what login returns on target OS when password expired.
This User Gave Thanks to Chubler_XL For This Post:
# 3  
Old 10-28-2019
Thanks very much for this reply! I've looked at the MAN pages for SSH and I'm seeing the following Error codes listed on that site:

Code:
SSH Error Codes
0
Success
1
Generic error
2
Remote host connection failure

But when I connect to some servers I'm seeing more error codes like 5 which isn't listed as an error code? Is there a list of possible error codes complied somewhere or is what's listed on the MAN page the full list?

Thank you.
# 4  
Old 10-28-2019
The ssh client exit codes seem to be vary a fair bit between different implementations.

It's unfortunate the the online manual appears to be incorrect or old on your target system. You could try ssh -V or ssh --version and then look for some on-line manuals/doco, or even the source for that particular client version.
This User Gave Thanks to Chubler_XL For This Post:
# 5  
Old 10-29-2019
Thanks again Chubler_XL for taking the time to reply to my post. We do have a plethora of versions still in use from RHEL 6.9 all they up to 7.7.

I did notice though on a system where I had to change the password...when I login manually I immediately get a message that the password has expired. Is there a way upon first connecting to a system via ssh to capture some reply back that may be used to identify the connection? Here's what I currently have in my script where I check my ssh connection and define a status code based on that initial connection:

Code:
ssh -qno StrictHostKeyChecking=no -o ConnectTimeout=1 user@$InputIP 'ls -l /home/user >/dev/null 2>&1' > /dev/null 2>&1
        status="$(echo $?)"
        echo $status

I then have defined in my script the following status based on the return code from $status above:

Code:
UNREACHABLE="255"
INVALID_PASSWORD="5"
NO_HOME_DIRECTORY="2"
PASSWORD_EXPIRED="1"
SUCCESS="0"

Does the above code look like this could work for me? Is there perhaps a better way to identify a password has expired on a system using our ID?

Thanks!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Return Codes...

Not sure if this is of any use but...... I was messing around with getting return codes greater than 255 for special usage... Of course the code could be made simple but in this code the new stored return code is generated as exit is progressing... #!/bin/sh # Real and imaginary return... (9 Replies)
Discussion started by: wisecracker
9 Replies

2. Shell Programming and Scripting

Different Return Codes

Hi, I wanted to know the significance of different return codes when we do echo $? I know when $? returns 0 the command has worked successfully. but what does $? = 1, 2, 3 etc. signify. Thanks in advance for the help !!! (3 Replies)
Discussion started by: aarti.popi
3 Replies

3. Shell Programming and Scripting

sftp return codes

sftp -v b $putlist $SFTP_ID@TARGET_SERVER How can I get a return code if fails to put the file? sftp -v b $getlist $SFTP_ID@TARGET_SERVER How can I get a return code if fails to put the file? (1 Reply)
Discussion started by: TimHortons
1 Replies

4. Shell Programming and Scripting

help with return codes

Hi In an unix script I am using an Perl one liner perl -i -ne '-----' If the perl one liner fails i am not able to catch the return code. It always give 0 as return code. Can you tell me how can i catch the return code perl -i -ne '---' RETCODE=$? echo $RETCODE Thanks and Regards Ammu (2 Replies)
Discussion started by: ammu
2 Replies

5. HP-UX

Return codes of RDIST

Can any body please tell me the return codes of RDIST tool? I am using RDIST (through an UNIX script) to synchronize files between two servers say ukblx151(source) & ukapx050(target). RDIST raises an alert mail (through notify option) in case of success & also failure but there is a problem if... (0 Replies)
Discussion started by: vishal_ranjan
0 Replies

6. Shell Programming and Scripting

Testing telnet connections in a script

Hi, I am trying to figure out how to test to see if a server is accepting telnet connections via a script. I have several remote MPE servers that are set in single user mode (and hence not accepting telnet connections), for their backups, I want to try and automate a test (from a unix... (0 Replies)
Discussion started by: dikiee
0 Replies

7. UNIX for Advanced & Expert Users

Return Codes

I have a simple script which renames a file.How do i capture the return code of the script if the script fails (3 Replies)
Discussion started by: kris01752
3 Replies

8. UNIX for Dummies Questions & Answers

Return codes

Hi, Can anyone tell me if there are return codes for SFTP? If so how would you capture them? I've tried 'man sftp' but its not particularly helpful. Many thanks Helen :confused: (4 Replies)
Discussion started by: Bab00shka
4 Replies

9. UNIX for Dummies Questions & Answers

unix return codes

Suppose I have a script which is monitoring a directory whenever a file drops in that directory,it sends alert say I want to write a return code for the above script which on successful execution of script gives a return value Based on return code , I want to do initiate some jobs in other... (1 Reply)
Discussion started by: abhib45
1 Replies

10. UNIX for Dummies Questions & Answers

Help with Return codes

I have the below script I am running on a Solaris system to check the status of a Tivoli Workload Scheduler job and return the status. We need this script to return a '0' if any of the jobs in the stream are in a "EXEC" state and an "1" if in a "HOLD" state. I am not a programmer so I am not sure... (1 Reply)
Discussion started by: leezer1204
1 Replies
Login or Register to Ask a Question