Сделайте ssh: // ссылки открытыми с PuTTY

15

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

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

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

Mistiry
источник

Ответы:

8

Есть вилка Putty по имени Kitty , на ее веб-сайте есть инструкции для того, чтобы делать именно то, что вы хотите.

Это действительно связано с изменениями реестра, но это достигается путем загрузки файла .reg и нажатия на него в проводнике Windows (я полагаю, с правами администратора).

RedGrittyBrick
источник
5

К сожалению, PuTTY не ассоциируется с 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)

Мартин Прикрыл
источник
2

Смотрите это: https://gist.github.com/sbiffi/11256316

Я хотел решение, которое не нужно менять замазку.

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

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

user3568910
источник
2
Я нашел способ сделать это с помощью ключей реестра, используя PowerShellкоманду. Ну вот.
Убомб
@ubomb FYI, есть ответ от 2017 года, который похож на cmd.exeверсию в вашем вопросе. Возможно, он достаточно отличается, чтобы преодолеть ограничения, с которыми вы столкнулись перед переходом на PowerShell.
jpaugh
2

Вот класс реестра, который удалит 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: ВКЛ совпадает с «SetLocal EnableDelayedExpansion»

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

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

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

Натан Ладвиг
источник