Aqui está uma classe de registro que removerá o ssh: // e o trailing (na verdade, todos) / do URI antes de passá-lo para o PuTTY, para que o PuTTY possa abri-lo diretamente:
Por usuário:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CURRENT_USER\Software\Classes\ssh\shell]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\Program Files (x86)\PuTTY\putty.exe\" \"!params:/=!\""
E, para todos no sistema:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\Program Files (x86)\PuTTY\putty.exe\" \"!params:/=!\""
Altere o caminho do arquivo com base em suas necessidades.
/ V: ON é o mesmo que 'SetLocal EnableDelayedExpansion'
/ c executa o comando
Eu configurei params para o parâmetro que é 'ssh: //domain.tld/'. Então eu retiro o 'ssh: //' dele com o '! Params: ssh: // =!', Que é um find-replace para 'ssh: //' to '' na variável params. Eu atribuo de volta a params, agora params = 'domain.tld /'. Em seguida, passo para putty e faço outro find-replace para substituir '/' por '' para remover a barra final que o Windows coloca, deixando 'domain.tld' que o PuTTY pode usar.
Isso me permite processar tudo no comando inserido na entrada do registro. Ele não faz nenhum tipo de higienização e é facilmente explorável (por exemplo, o bloco de notas abre o bloco de notas), portanto, talvez você queira alterar o URI para algo que só você saiba.