ssh: handler?

Topics: User Forum
Oct 31, 2006 at 4:39 AM
You mention having a default handler for ssh, but I do not see it included in the release.

I've set up a ssh: url map, but putty throws error about not being able to find host. Any suggestions?

Thank you!
Coordinator
Oct 31, 2006 at 10:51 PM
The ssh: handler option on the "Basic" tab is only displayed if PuTTY.exe can be found under c:\program files\putty\ (actually, the "c:\program files" part depends on the language version of Windows).

If you want to set it up manually you'd enter the full path of UrlConf (not of PuTTY!) into the Program field, and the following into the Parameters field (only replace the path with the full path to PuTTY.exe), with quotes and all:

"%1" port=22 -- "c:\program files\PuTTY\PuTTY.exe" -P $p $h

Yes, this is obscure and undocumented. Well, actually it's documented in the source. ;-) Thanks for reminding me to add some kind of online help.
Nov 8, 2006 at 4:31 PM
I'm trying to make this work as well. I exported a working "telnet" URL handler from the registry, which looks like this:

Windows Registry Editor Version 5.00

HKEY_CLASSES_ROOT\telnet
@="URL:Telnet Protocol"
"EditFlags"=dword:00000002
"URL Protocol"=""

HKEY_CLASSES_ROOT\telnet\DefaultIcon
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00

HKEY_CLASSES_ROOT\telnet\shell

HKEY_CLASSES_ROOT\telnet\shell\open

HKEY_CLASSES_ROOT\telnet\shell\open\command
@="C:\\Program Files\\PuTTY\\putty.exe -telnet %1"


Then I changed all occurances of "telnet" to "ssh" and imported it back into the registry. Everything went in smoothly. But then when I try to run "ssh://ip-address", I get a pop-up window saying host "ssh" does not exist. On the other hand, "telnet://ip-address" works fine.
Nov 8, 2006 at 4:53 PM
Adding the "Parameters" got PuTTY to start -- though it seems to start without the parameters. Here is the export of my "ssh" registry entry:

Windows Registry Editor Version 5.00

HKEY_CLASSES_ROOT\ssh
@="URL:SSH Protocol"
"EditFlags"=dword:00000002
"URL Protocol"=""

HKEY_CLASSES_ROOT\ssh\DefaultIcon
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,75,00,72,00,\
6c,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00

HKEY_CLASSES_ROOT\ssh\shell

HKEY_CLASSES_ROOT\ssh\shell\open

HKEY_CLASSES_ROOT\ssh\shell\open\command
@="C:\\Program Files\\PuTTY\\putty.exe"
"Parameters"="\"%1\" port=22 -- \"c:\\program files\\PuTTY\\PuTTY.exe\" -P $p $h"
Nov 8, 2006 at 5:33 PM
Turns out, PuTTY can handle the "telnet://ip-address" URL, but not something like "ssh://ip-address".

I ended up getting it work with a script, cygwin and openssh. Here is my "ssh.bat" script which is used in the ssh URL handler as the value for "command":


@echo off

c:\cygwin\bin\bash -c "echo %1 ; ssh `echo %1 | cut -d/ -f 3`"
Coordinator
Nov 8, 2006 at 9:01 PM
UrlConf does basically the same as your script: it cuts the URL into pieces and feeds it to PuTTY in a way it can understand.

If you installed PuTTY in "C:\Program Files\PuTTY" you should be able to configure it you easily: just remove your existing ssh: handler and turn on "Use PuTTY to handle the SSH Protocol" on the "Basic" tab of UrlConf. :)

Btw., when I mentioned "Parameters" I meant the text field of that name in UrlConf which you can reach by double-clicking on an URL handler listed on the "Advanced" tab. Regedit (or a similar tool) isn't needed to configure an URL handler using UrlConf; of course you can use it to see what's going on behind the scenes, though.