AppleScriptingUnix Technologies

Automate command execution on MAC OS X/Unix Systems from Windows Systems remotely via SSH without prompting for Password everytime

It’s a fairly simple procedure to have auto SSH enabled to any of SSH supported system.  It all needs the system to have Public & Private RSA keys generated and configured between the hosting and connecting system.

 

On the System to which you want to SSH, you need to run through below sequence of commands:

  • ssh-keygen -t rsa
  • cd .ssh
  • cat id_rsa.pub >> authorized_keys
  • chmod 600 authorized_keys

 

On the system from where you want to remotely connect to the above system you need to download and install the Private Key so that whenever you attempt to SSH the private key in your system cache would be used for authentication and you wouldn’t be prompted for password. Below are the sequence of the steps:

 

  • cd .ssh/
  • scp admin001@192.22.4.108:/Users/admin001/.ssh/id_rsa .

Below is the scenario where I’ve had this setup to make automated commands to be executed on my MAC system from my Windows System via Shell scripting without needing me to provide the password for every ssh attempt.

 

Enable SSH on your MAC OS X Systems: Systems Preferences > Sharing > enable “Remote Login” as shown below.  Choose All users if you’d like to let any users to do SSH to your MAC.

image

 

Install Cygwin on your Windows System from which you want to remotely connect to the MAC system via Command Line without providing Password.

Launch the Cygwin shell by running the script located at: "C:cygwin64Cygwin.bat"

image

image

 

Run below sequence of steps in the MAC System.  You can do this by locally logging on to the MAC and launching Terminal.  Or from Windows System launch the Cygwin and SSH to the MAC system.  Here I am doing it via Cygwin on Windows:

Govardhan@Gunnala-laptop ~

$ ssh admin001@192.22.4.108

Password:

Last login: Mon Sep 23 19:27:10 2013 from gunnala-laptop.testlan.lan

macmini:~ admin001$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/admin001/.ssh/id_rsa):

Created directory ‘/Users/admin001/.ssh’.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /Users/admin001/.ssh/id_rsa.

Your public key has been saved in /Users/admin001/.ssh/id_rsa.pub.

The key fingerprint is:

e6:a0:9b:ab:22:53:3f:5f:32:10:0d:5d:b3:74:25:48 admin001@macmini.testlan.com

The key’s randomart image is:

+–[ RSA 2048]—-+

| .. oG.o.. |

| o…- . |

| . . . |

| . . |

| . . S |

| . o + df |

| . .. o o |

|+ o99 + |

|.o..++. > |

+—————–+

macmini:~ admin001$ cd .ssh

macmini:.ssh admin001$ ls

id_rsa id_rsa.pub

macmini:.ssh admin001$ cat id_rsa.pub >> authorized_keys

macmini:.ssh admin001$ chmod 600 authorized_keys

macmini:.ssh admin001$ exit

logout

Connection to 192.22.4.108 closed.

Govardhan@Gunnala-laptop ~

 

Now on the client systems you need to have the Private key installed from the MAC.  For which you’ll need to follow below steps:

Govardhan@Gunnala-laptop ~

$ cd .ssh/

Govardhan@Gunnala-laptop ~/.ssh

$ scp admin001@192.22.4.108:./ssh/id_rsa .

Password:

scp: ./ssh/id_rsa: No such file or directory

Govardhan@Gunnala-laptop ~/.ssh

$ scp admin001@192.22.4.108:/Users/admin001/.ssh/id_rsa .

Password:

id_rsa 100% 1675 1.6KB/s 00:00

Govardhan@Gunnala-laptop ~/.ssh

$ ssh admin001@192.22.4.108 ps -Ajc | grep loginwindow | grep standuser002

Govardhan@Gunnala-laptop ~/.ssh

$ ssh admin001@192.22.4.108 ps -Ajc | grep loginwindow | grep standuser00*

standuser001 37501 36920 37501 0 0 Ss ?? 0:00.54 loginwindow

Govardhan@Gunnala-laptop ~/.ssh

$

Advertisements