Tornar os links ssh: // abertos com o PuTTY

15

Existe uma maneira de associar hiperlinks em sites que estão no formato ssh://10.10.10.10aberto e conectado automaticamente usando o PuTTY?

Estou procurando uma solução que funcione em vários navegadores (IE e Firefox) e seja fácil de implementar. Não posso dar instruções à nossa equipe de suporte para realizar edições do registro manualmente :(

Alguém sabe como fazer isso funcionar?

Mistiry
fonte

Respostas:

8

Há um garfo Putty chamado Kitty , seu site inclui instruções para fazer exatamente o que você deseja.

Isso envolve alterações no registro, mas isso é feito baixando um arquivo .reg e clicando nele no Windows Explorer (acho que com privilégios de administrador).

RedGrittyBrick
fonte
5

O PuTTY infelizmente não se associa aos ssh://URLs.

Você pode associar um aplicativo a um protocolo manualmente. Consulte o artigo MSDN Registrando um aplicativo em um esquema de URI .

Basicamente, você adiciona uma chave do Registro como:

[HKEY_CLASSES_ROOT\ssh]
@="URL: SSH Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\ssh\DefaultIcon]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\",0"

[HKEY_CLASSES_ROOT\ssh\shell]

[HKEY_CLASSES_ROOT\ssh\shell\open]

[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\""

Embora o acima passe uma URL inteira para a linha de comando do PuTTY. E o PuTTY não entende o ssh://prefixo. Portanto, você teria que adicionar um script de wrapper que retire ssh://e transmita apenas um usuário e um host ao PuTTY.

Para isso, consulte:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Outra maneira é usar o WinSCP . Ele se registra para manipular a ssh://URL e abre a sessão especificada pela URL no PuTTY .

(Eu sou o autor do WinSCP)

Martin Prikryl
fonte
2

Veja isto: https://gist.github.com/sbiffi/11256316

Eu queria uma solução que não precisa mudar de massa.

Ele associa um script visual básico aos URLs ssh: // e telnet: //, que analisam o URL e ativam o putty usando parâmetros padrão como putty.exe -ssh -l login.

2 vantagens adicionais: - A senha também pode ser transmitida na URL para autenticação automática - Não há necessidade de alterar a massa, adaptada a todos os patches.

user3568910
fonte
2
Eu descobri uma maneira de fazê-lo com apenas chaves do registro usando um PowerShellcomando. Aqui está.
ubomb
@ubomb FYI, há uma resposta de 2017 semelhante à cmd.exeversão da sua pergunta. Talvez seja diferente o suficiente para superar as limitações que você enfrentou antes de mudar para o PowerShell.
jpaugh
2

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.

Nathan Ladwig
fonte