QUESTION :
I have multiple servers that I need to remote into.
I prefer Cygwin over Putty to do so.
Anyhows – the process of opening my cool Mintty window and then typing the following commands takes too long.
PS – I am using a “key” authentication to these servers.
First, I double Click Cygwin Terminal shortcut from my windows desktop.
Then once the terminal session has booted up, from the command prompt I type the following –
$ eval `ssh-agent`
$ ssh-add
$ ssh <username>@<servername>
Please keep in mind that my ‘servername’ is variable. In fact I have about 10 different server names that could potentially be inserted there – Hence my need for 10 different shortcuts. I would prefer to double click on something from my desktop that will fire up my Mintty and automatically execute the above bash shell commands.
Does anyone have or can recommend a nice/elegant solution to do this?
ANSWER :
You need to create a shell script and then have a mintty shortcut that calls it. First, the script:
#!/bin/bash
eval `ssh-agent`
ssh-add
read -p "Username: "
username=$REPLY
read -p "Host: "
host=$REPLY
ssh $username@$host
eval `ssh-agent -k`
Save this as something like: ~/bin/CygwinMinttySsh.sh
Make sure the script is executable: chmod a+rx ~/bin/CygwinMinttySsh.sh
Then create a new shortcut to C:cygwinbinmintty.exe, then right-click on it and select “properties” and change the target to:
C:cygwinbinmintty.exe -e /bin/sh -l -c '$HOME/bin/CygwinMinttySsh.sh'
There are actually a couple of ways for you to do this. If you really need to run the commands you have listed before performing the ssh
, then place these commands into a file called myssh
in your cygwin home directory.
eval `ssh-agent`
ssh-add
ssh <username>@$1
Obviously put the username that you want to use where you have <username>
.
You can then run this by using the following command:
c:cygwinbinbash --login myssh <servername>
You can of course put that into a BAT file.