Aqui está uma classe de registro que removerá o ssh: // e o trailing (na verdade, todos) / do URI antes de passá-lo ao 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
Defino parâmetros para o paramater que é 'ssh: //domain.tld/'. Em seguida, retiro o 'ssh: //' com os '! Params: ssh: // =!', Que é um substituto para encontrar 'ssh: //' to '' nos parâmetros da variável. Atribuo isso de volta a params, agora params = 'domain.tld /'. Em seguida, passo-o para o putty e faço outra busca / substituição para substituir '/' por '' para remover a barra final que o Windows coloca, deixando 'domain.tld' que o PuTTY pode usar.
Isso permite processar tudo no comando digitado na entrada do registro. Ele não faz nenhum tipo de higienização e é facilmente explorável (por exemplo, ssh: // && notepad abre o bloco de notas), portanto, você pode alterar o URI para algo que apenas você conhece.
PowerShell
comando. Aqui está.