PuTTY Auto Login Macro using AutoHotKey

PuTTY is the best SSH client and it’s free. But it lacks of this little function that I really want – Automatic login.

So I have searched many Google pages and found this PuTTY Connection Manager which I explained details in my previous post. It is a very good software.

But somehow I wanted the auto login function without the extra programs. I wanted it to be done directly with PuTTY, not within the frame of PuTTY Connection Manager.

And I found this software called AutoHotKey (http://www.autohotkey.com/) which can automate keyboard and mouse actions. But I gave up to use it at that time because I was too lazy to read all the instructions and to come up with a script for the auto login.

But yesterday, I decided to take a look again and this time I successfully created the Auto Login script! To tell you the truth, it was not easy but it is worth it. I am proud of myself 🙂

So here is the script.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
; You need to define the full path where the putty.exe exists . 'putty_profile' should be existing profile name.
v_program=%A_ProgramFiles%\PuTTY\putty.exe -load putty_profile
v_userid=youruserid
v_passwd=yourpasswd
; msec to wait before sending userid
v_wait_userid=1000
; msec to wait before sending password
v_wait_passwd=500
 
;-------------------------------------------------
; To make modifier keys to work properly (such as Shift)
SetKeyDelay, 0, 10
 
run, %v_program% , , , newpid
 
;you need to wait a little for the window to initialize
;sleep, 100
winwait, ahk_pid %newpid%
 
;wait for the login prompt to appear
sleep, %v_wait_userid%
ControlSend, , %v_userid%{enter}, ahk_pid %newpid%
 
sleep, %v_wait_passwd%
ControlSend, , %v_passwd%{enter}, ahk_pid %newpid%
 
;create unique title so you won't be lost 
WinGetTitle, v_title, ahk_pid %newpid%
v_newtitle=%v_title% - %newpid%
WinSetTitle, ahk_pid %newpid%,,%v_newtitle%

If you want to try this yourself, you will need to change some information.
(more…)

Read More