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?
2 Answers
Create a launcher server.desktop with the following content:
[Desktop Entry]
Name=Server Name
Exec=ssh [email protected]
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 [email protected]; else exit; fi'
- 92,255
- 11
- 164
- 178
-
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 [email protected] -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
- 171,743
- 65
- 311
- 401
-
+1, I too use config file, but opted for a quick solution in the answer. – enzotib May 30 '11 at 15:16