Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

In windows we have created a batch file to login into a machine via putty. On clicking the batch file it logins into that machine. Is it possible to create a script in ubuntu to do the same task?

share|improve this question

2 Answers 2

up vote 5 down vote accepted

Create a launcher server.desktop with the following content:

[Desktop Entry]
Name=Server Name
Exec=ssh user@server.domain.com
Terminal=true
Type=Application

and give it execution permissions.

Obviously you should put the real user and the real server.domain.com in the Exec= line.

To allow to choose the username, substitute the Exec= line with the following:

Exec=sh -c 'user=$(zenity --entry --title="Set username" --text="Username: " --entry-text="$USER"); if [ -n "$user" ]; then ssh $user@server.domain.com; else exit; fi'
share|improve this answer
    
What i want is, On clicking the script it should login into the machine. –  karthick87 May 30 '11 at 14:32
    
karthick87: without entering a password? You'll need to use key-based authentication for that. Pass the -i option to ssh with the next argument the path to the private keyfile. –  Lekensteyn May 30 '11 at 14:41

Following up enzotib's answer: if you hardcode the login information in every script and file, it will make it more difficult to change it later if needed. A better solution would be creating a SSH configuration file with settings grouped under a host alias.

Instead or running:

ssh admin@meh.example.com -p 1234 -i ~/.ssh/id_rsa

you can create a ~/.ssh/config file containing:

Host meh
    HostName meh.example.com
    User admin
    Port 1234
    IdentityFile ~/.ssh/id_rsa

Each of the settings below meh are optional, and when omitted, it will use defaults.

The command would then be:

ssh meh

You're allowed to override settings, the below command would login with username super using the keyfile ~/.ssh/other_key and (provided by the config file) hostname meh.example.com on port 1234:

ssh super@meh -i ~/.ssh/other_key
share|improve this answer
    
+1, I too use config file, but opted for a quick solution in the answer. –  enzotib May 30 '11 at 15:16

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.