Сделайте так, чтобы ссылки ssh:// открывались с помощью PuTTY

Сделайте так, чтобы ссылки ssh:// открывались с помощью PuTTY

Есть ли способ связать гиперссылки на веб-сайтах, которые в формате ssh://10.10.10.10автоматически открываются и подключаются с помощью PuTTY?

Я ищу решение, которое будет работать в разных браузерах (IE и Firefox) и будет простым в реализации. Я не могу дать инструкции нашей службе поддержки по ручному редактированию реестра :(

Кто-нибудь знает, как это сделать?

решение1

Есть вилка Putty под названиемКитти, его веб-сайт включает в себяинструкцииза то, что делаете именно то, что вам нужно.

Это требует внесения изменений в реестр, но это достигается путем загрузки REG-файла и щелчка по нему в проводнике Windows (полагаю, с правами администратора).

решение2

К сожалению, замазкане ассоциирует себяс ssh://URL-адресами.

Вы можете вручную связать приложение с протоколом. См. статью MSDNРегистрация приложения в схеме URI.

По сути, вы добавляете такой ключ реестра:

[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\""

Хотя вышеперечисленное передает весь URL в командную строку PuTTY. И PuTTY не понимает префикс ssh://. Поэтому вам придется добавить скрипт-обертку, который обрезает ssh://и передает PuTTY только пользователя и хост.

Для этого смотрите:
https://johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/


Другой способ — использоватьWinSCP. Эторегистрируется для обработки ssh://URLиоткрывает сеанс, указанный в URL в PuTTY.

(Я автор WinSCP)

решение3

Видеть это: https://gist.github.com/sbiffi/11256316

Мне нужно было решение, не требующее замены шпатлевки.

Он связывает скрипт Visual Basic с URL-адресами ssh:// и telnet://, который анализирует URL-адрес и запускает Putty, используя стандартные параметры, такие как Putty.exe -ssh -l login.

2 дополнительных преимущества: – Пароль можно передавать в URL также для автоматической аутентификации – Не нужно менять Putty, поэтому адаптируется ко всем патчам.

решение4

Вот класс реестра, который удалит ssh:// и завершающий (фактически, весь) / из URI перед его передачей в PuTTY, чтобы PuTTY мог напрямую открыть его:

На пользователя:

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:/=!\""

И для всех в системе:

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:/=!\""

Измените путь к файлу в соответствии с вашими потребностями.

/V:ON — то же самое, что и «SetLocal EnableDelayedExpansion»

/c запускает команду

Я устанавливаю params в параметр, который является 'ssh://domain.tld/'. Затем я удаляю 'ssh://' из него с помощью '!params:ssh://=!', что является поиском-заменой для 'ssh://' на '' в переменной params. Я назначаю это обратно params, теперь params = 'domain.tld/'. Затем я передаю это в putty и выполняю еще один поиск-замену, чтобы заменить '/' на '', чтобы удалить завершающий слеш, который ставит Windows, оставляя 'domain.tld', который может использовать PuTTY.

Это позволяет мне обрабатывать все это в команде, введенной в запись реестра. Это не делает никакой очистки вообще и легко эксплуатируется (например, ssh://&¬epad открывает блокнот), поэтому вы можете захотеть изменить URI на что-то, известное только вам.

Связанный контент