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.
- Install AutoHotKey software.
- Create any file name with extension .ahk. For example ’ssh.ahk’ would be fine.
- Copy & paste above code into the file. But need to change the values.
v_program: PuTTY location with the -load option and connection profile name
v_userid: userid
v_passwd: passwd
v_wait_userid : msec to wait before sending userid
v_wait_passwd : msec to wait before sending passwd - Save it and double click on the file to execute it. And watch the PuTTY logging in the server automagically!
In fact, you can easily add additional commands at the end of the script to execute further commands.
Below is an example.
1 2 3 4 5 6 7 8 9 |
;maybe you want to wait some seconds while initial welcome screen appears. Let's say 2 seconds.
sleep, 2000
;cd upload
ControlSend,,cd upload{enter} , ahk_pid %newpid%
;You can send the folder list to your email account.
ControlSend,,ls|mail -s "Daily File Listing for Upload" your@emailaccount.com{enter}, ahk_pid %newpid% |
Note that there is a little issue that the password is saved as plain text. But I can live with it for now.
Here is my script in action.
Come visit again for more information on PuTTY.
Thank you very much - it worked as mentioned and will definitely prove useful in my daily operations.
Comment by iman — June 26, 2008 @ 5:21 am