SSH through SSH
I have inherited a test station at work that runs bash script. I am new to linux but have managed to get most of the software to work with this exception:
I am having a problem with the following line: ssh -q -o "ConnectTimeout 10" root@$OSR_PC "sshpass -p default ssh -q -o \"ConnectTimeout 10\" root@$OSR_IP \"export lm_ctrl_channel_bw=$CHNL_BW; export lm_ctrl_dl_freq=$DL_CF; export lm_ctrl_afs=0; configdb -S lm_ctrl; reboot; exit\"" The test setup is as follows: OBR_PC is linked to OSR_PC (address 172.18.0.20) The OSR_PC is linked to OSR_IP(address: 169.254.101.2) The software is to send the commands to the OSR_IP through the OSR_PC from the OBR_PC but I cannot get a link with this line and nether can my IT tech. He wants to create an entire new configuration. I can ssh into the OSR_PC and then ssh onto the OSR_IP. Can I make the above script work without rewriting the entire program which is quite extensive? Thanx in advance WimaxTech |
Where is it failing?
I don't know about that command, but I can run Code:
[user@comp1 ~]$ ssh comp2 "ssh comp3 ls" |
It appears fo fail after "sshpass -p default ssh -q -o \"ConnectTimeout 10\" root@$OSR_IP \"
There's a lot going on with this script that I do not know yet. |
If I were in your shoes, for the sake of testing where the failure is, I would take out the variables that reference known IP's, I would also setup ~/.ssh/config files on each machine that you are ssh'ing into to pre configure the "connecttimeout" options, and if possible I would even configure a passwordless ssh key for root@$OSR_IP to get rid of the "sshpass" command (BTW I had never heard of that till your post). That should leave you with a very minimalist command. Assuming that all works, you could back out of those changes to find the one that breaks.
|
Quote:
is crucial. Can you please tell us 'how" it fails, what output are you getting? Cheers, Tink |
The software is setting frequency and bandwidth parameters on two systems to establish communication between the two.
The OBR unit, controlled from OBR_PC, is not a problem and works fine. The software control of the OSR_IP does not report any error. The program continues to run but the parameters on OSR_IP are not changed. This results in a "Test Failure". Entering the command line in Terminal, ssh -q -o "ConnectTimeout 10" root@$OSR_PC "sshpass -p default ssh -q -o \"ConnectTimeout 10\" root@$OSR_IP" I am unable to reach the command prompt of OSR_IP. I have tried symplfing the line to : ssh root@$OSR_PC "sshpass -p default ssh root@$OSR_IP" The return shows that the OSR_IP address has been added but nothing more happens. I have been searching for a reason for this. As I have said earlier, I can ssh into OSR_PC and then ssh into OSR_IP and from what I know so far – this should work. Is there a Good reference document that would help my understanding of using ssh in this manner? |
Well ... I'd start hunting for sshpass; I've not come across that command in
over 15 years of using Linux. What does it do, where does it live? Cheers, Tink |
sshpass is not recommended for the reasons stated on the man page http://linux.die.net/man/1/sshpass.
I would indeed go with post#4; simplify the code (at least for debugging the issue) and use ssh auth-keys instead of sshpass. |
sshpass is a utility designed for running ssh using the mode referred to as "keyboard-interactive" password authentication, but in non-interactive mode.
Security is a non-issue as the entire system on which it's run is closed and there can be no outside connections. |
I know what its used for; I read the page :)
Nonetheless, simplification would be better. |
All times are GMT -5. The time now is 07:19 PM. |