Most popular tags

Welcome to Earthwithsun.com, where you can ask questions and receive answers from other members of the community.

cygwin ssh shortcut on windows desktop

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?

1 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:\cygwin\bin\mintty.exe, then right-click on it and select "properties" and change the target to:

C:\cygwin\bin\mintty.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:\cygwin\bin\bash --login myssh <servername>

You can of course put that into a BAT file.