![]() |
Script to open SSH connection and run commands on other Linux device
Hi!
I use a NSLU2 (NAS-System) which runs linux (debian) with a usb-controlled multiple power socket (Gembird) to control the light in my living-room. Works fine. (At this time I control it with a PHP-based webpage on the NSLU) Now i want to switch the sockets without this (slow) webpage. My idea was to create a script which connects via SSH from the N900 to the NSLU and then run the needed commands. When i connect manually with XTerminal over SSH i get a prompt to enter my password. After this i can run the command. How can i put this in a script? Is this automation possible with a "password-based-authentication?". Or do i need certificates or something like this for authentication. My second question: How can is put a link to this script to my "program menu" or to a homescreen. Thank you! |
Re: Script to open SSH connection and run commands on other Linux device
For logging in, use public key authentication (google is your friend). It really isn't hard to setup, create a pair of keys and put the public one on server and the private one on the device, plus change a line in the server config.
For executing a command upon login, just use ssh user@host command (so you can create a script on the N900 that logs on to the nslu2 and runs a script to toggle the lights). |
Re: Script to open SSH connection and run commands on other Linux device
Thanks for your fast response!
Sounds manageable to use public key authentication. I'll try it! Do you know wheter it's complicated to add an shortcut or something to the homescreen / menu? |
Re: Script to open SSH connection and run commands on other Linux device
RouterRebooter: Think about n900 like about normal linux machine.
here it is: http://rcsg-gsir.imsb-dsgi.nrc-cnrc....et/node31.html after this you can use command like this: ssh username@IPofMachine Commands for execution.... If you need step by step instruction, I can write it in 2 hours (now don't have time).... |
Re: Script to open SSH connection and run commands on other Linux device
Quote:
|
Re: Script to open SSH connection and run commands on other Linux device
Quote:
I'm pleased about your helpfulness - really great! I'll try to establish the connection with the method form your link. If I've further questions, i put it in this thread :) Thanks! Does anyone know how it's possible to add an shortcut (to run the script on N900) or something to the homescreen / menu? |
Re: Script to open SSH connection and run commands on other Linux device
Quote:
"ssh username@192.168.X.X /path/commandfile.*" command? |
Re: Script to open SSH connection and run commands on other Linux device
Hi RouterRebooter,
The info to make a desktop icon to run an ssh command can be found in this post: http://talk.maemo.org/showthread.php?t=35858 I used it to run WOL (an installed app on my Linux device) via SSH. the icon method allows you to run one command. but you can make a script to run many commands. the cool thing is you can also make your own icons too. i am a newbie to Linux and the terminal but with minimal experienced i achieved success. a program i found essential was WinSCP it gives you a windows GUI like file manager to you n900 after you have installed SSH Server. I had to install a new program on my n900 and restart before my icons showed up. I now have several custom desktop icons that run SSH scripts. good luck tim ps. if you read the whole post i ask all the newbie questions. |
Re: Script to open SSH connection and run commands on other Linux device
Quote:
Sounds good! Now i only need time to read and test it - I hope tomorrow ;) |
Re: Script to open SSH connection and run commands on other Linux device
Step by step protocol for create passwordless connection:
Quote:
Quote:
|
Re: Script to open SSH connection and run commands on other Linux device
Wow!
Thank you very much for your help - I'll try it tomorrow! |
Re: Script to open SSH connection and run commands on other Linux device
Note that you don't need to be ROOT to do this. Creating an authorized key is something that you do on an account-by-account basis.
This is how I do it for my linux systems: Code:
[Log in as myself, on my local machine] The above works fine, as long as there actually is an .ssh directory in the remote location account. That'll be the case if you sometime in the past used an ssh command on that remote account. (Note that '-l user host' is equivalent with 'user@host' as far as ssh is concerned.) If the 'date' command works then you should be able to put ssh commands into a local script. Make sure that commands you pass to the remote computer are available there on that remote computer. NB: There is no reason to involve the root account in this. |
Re: Script to open SSH connection and run commands on other Linux device
Yesterday i had time to try it.
After a few problems (file-permissions) it worked well :) Now I can switch the lights in my living room from all over the world with my N900 ;) (I know - "who needs?" - but it's very funny :D) Thanks to all! |
Re: Script to open SSH connection and run commands on other Linux device
Quote:
|
Re: Script to open SSH connection and run commands on other Linux device
Code:
[Desktop Entry] in "/usr/share/applications/hildon/" I haven't had time to program a script yet so it just doe one ssh tunnel the icons below are placed in "/usr/share/icons/hicolor/scalable/hildon/" http://www.jdidesign.com/files-in/rdp.png http://www.jdidesign.com/files-in/ssh.png |
Re: Script to open SSH connection and run commands on other Linux device
i want to turn on / off wifi (router)
i cant get this working with the .desktop file Code:
[Desktop Entry] open gainrooted xterm and type Code:
ssh root@xxx.xxx.xxx.xxx wl radio off whats wrong? anybody have nice icons for wifi on / off ? :D |
Re: Script to open SSH connection and run commands on other Linux device
I am no Linux guru but i run an ssh command on my router by executing the flowing command from withing the xxx.desktop file
Code:
Exec=/usr/bin/osso-xterm 'ssh -l root myip.com -p 22 /usr/sbin/wol -i 192.100.1.255 00:X3:18:F1:86:A1' myip.com = router address. the ssh command i would run from xterminal this is the path to the command on my router so if i had to guess this is what your command should look like: Code:
Exec=/usr/bin/osso-xterm 'ssh root@xxx.xxx.xxx.xxx wl radio off' Code:
Exec=/usr/bin/osso-xterm 'ssh router.ip.com -p 22 root@xxx.xxx.xxx.xxx wl radio off' Code:
Exec=/usr/bin/osso-xterm 'ssh -l root router.ip.com -p 22 root@xxx.xxx.xxx.xxx wl radio off' |
Re: Script to open SSH connection and run commands on other Linux device
btw: ssh-copy-id is available on the N900 for copying your public key to a remote machine easily
shortens the whole setup to: Code:
ssh-keygen |
Re: Script to open SSH connection and run commands on other Linux device
thanks ;)
i found a solution myself ( thanks to subcore) i had to make the ssh-keygen command with normal "user" xterm and not "root". this is the solution because its harder to start xterm with root rights and ssh and the wl radio off command. now everything works well ;) now i only need some nice wlan on / off icons :D but i cant find icons :-( |
Re: Script to open SSH connection and run commands on other Linux device
here are 2 icons i made from the first google wlan image that popped up.
http://www.jdidesign.com/files-in/maemo/wlan-off.png http://www.jdidesign.com/files-in/maemo/wlan-on.png |
All times are GMT. The time now is 10:07. |
vBulletin® Version 3.8.8