M-a-x-Z Posted June 4, 2017 (edited) Доброго времени суток! Захотелось нам в нашей внутренней системе мониторинга сделать ссылки сразу на открытие SSH к оборудованию. Благо, механизм есть: создание ссылок со схемой ssh://... и telnet://... На сайте PuTTY есть даже подробная инструкция, как браузер заставить эти ссылки отрабатывать: https://putty.org.ru/features/ssh-handler.html Но, как ни странно, PuTTY, не смотря на наличие инструкции, не хочет брать в качестве параметра "ssh://...". Т.е. браузер, как путёвый, честно передаёт putty.exe аргумент %1. На что PuTTY говорит: "ssh unknown host". В принципе, я догадаюсь, как решить проблему - скомпилить простенький экзешник, который распарсит URL в аргументы командной строки PuTTY и запилить его в HKEY_CLASSES_ROOT для обработки схемы ssh:. Но это выглядит велосипедом. М.б. можно как-то составить REG файл таким образом, чтобы передать PuTTY нужные параметры или может есть готовый exe, котоые перепарсит url в командную строку putty? Edited June 4, 2017 by M-a-x-Z Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Tau Posted June 4, 2017 Посмотрите Kitty (форк Putty), там из коробки заявляется: -sshhandler: create protocols associations (telnet://, ssh://) for internet explorer Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
stas_k Posted June 4, 2017 Посмотрите Kitty (форк Putty), там из коробки заявляется: putty.org.ru/features/ssh-handler.html Обработчик протоколов: интеграция с браузером Вы можете добавить новый обработчиков протоколов, чтобы ссылки вида ssh:// и telnet:// на веб–страницах стали открываться непосредственно в PuTTY. Для этого вам необходимо выполнить команду из командной строки с правами администратора: putty.exe -sshhandler кроме того, ваш китти врет мухлюет. Высота поля для работы со списком сохранённых сессий в PuTTY очень маленькая. Единовременно вы можете видеть только 6 сессий. В KiTTY по умолчанию высота этого поля увеличина до 21 строки. у меня в putty высота поля ограничена высотой экрана. и все остальные "отличительные достоинства" тоже присутствуют. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
M-a-x-Z Posted June 5, 2017 putty.org.ru/features/ssh-handler.html Это ровна та ссылка, про которую я спрашивал в заглавном посте))) Самая свежая версия (0.68) PuTTY с этого сайта ругается на ключ -sshhandler и не обрабатывает ссылки при ручной правке реестра. Это дополнительно ставит меня в тупик - почему функция документирована и не реализована. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted June 6, 2017 Открой исходники да посмотри, что как маленький хомяк спрашиваешь. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
M-a-x-Z Posted June 18, 2017 Открой исходники да посмотри, что как маленький хомяк спрашиваешь. Ну хомяк - не хомяк, а анализировать исходники, да и ещё искать там для такого большого проекта ошибки - накладно по времени. Я ж не спрашивал, почему пуття не работает. Вопрос-то мой был ро опыт аналогичных проблем. Но видимо никто не сталкивался. Поэтому пришлось за полчаса изобрести велосипед, который на всякий случай оставлю здесь: C:\putty\putty.vbs putty="C:\putty\putty.exe" Dim WshShell set WshShell = WScript.CreateObject("WScript.Shell") Set objArgs = WScript.Arguments For i = 0 to objArgs.Count - 1 arg=objArgs(i) sch=InStr(1,arg,"://") if sch>1 then bs=InStr(sch+3,arg,"/") if bs<sch then bs=Len(arg)+1 arg2=Mid(arg,sch+3,bs-sch-3) dog=InStr(1,arg2,"@") if dog>0 then username=Mid(arg2,1,dog-1) arg2=Mid(arg2,dog+1) else username="" end if schema=LCase(Mid(arg,1,sch-1)) if schema="ssh" then if username<>"" then WshShell.Run putty+" -l "+username+" -ssh "+arg2 else WshShell.Run putty+" -ssh "+arg2 end if if schema="telnet" then WshShell.Run putty+" -telnet "+arg2 end if else MsgBox "Ты втираешь какую-то дичь" end if Next putty.reg: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\telnet] @="URL:Telnet Protocol" "EditFlags"=dword:00000002 "FriendlyTypeName"="@ieframe.dll,-907" "URL Protocol"="" "BrowserFlags"=dword:00000008 [HKEY_CLASSES_ROOT\telnet\DefaultIcon] @="c:\\putty\\putty.exe,0" [HKEY_CLASSES_ROOT\telnet\shell] @="" [HKEY_CLASSES_ROOT\telnet\shell\open] [HKEY_CLASSES_ROOT\telnet\shell\open\command] @="cscript \"c:\\putty\\putty_url.vbs\" %1" [HKEY_CLASSES_ROOT\ssh] @="URL:SSH Protocol" "EditFlags"=dword:00000002 "FriendlyTypeName"="@ieframe.dll,-907" "URL Protocol"="" "BrowserFlags"=dword:00000008 [HKEY_CLASSES_ROOT\ssh\DefaultIcon] @="c:\\putty\\putty.exe,0" [HKEY_CLASSES_ROOT\ssh\shell] @="" [HKEY_CLASSES_ROOT\ssh\shell\open] [HKEY_CLASSES_ROOT\ssh\shell\open\command] @="cscript \"c:\\putty\\putty_url.vbs\" %1" [HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\Sessions\Default%20Settings] "Cipher"="aes,chacha20,blowfish,3des,des,WARN,arcfour" "KEX"="ecdh,dh-gex-sha1,dh-group14-sha1,rsa,dh-group1-sha1,WARN" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted June 18, 2017 Открой исходники да посмотри, что как маленький хомяк спрашиваешь. Там исходники, На assembler и C. Компилеровать кто будет, ещё из под винды А.С. Пушкин Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted June 19, 2017 На assembler и C. Компилеровать кто будет, Очевидно что достаточно найти main() и посмотреть что там с ком строкой делается. Ассемблер поди только для сжатия и крипты. Компелячить не надо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cat035 Posted December 1, 2021 Если вы не меняли путь установки, то вот так. Если же вы меняли то открываете блокнот, кидаете туда скрипт, меняя то, что выделено чёрным на свой путь до Putty, потом сохраняете как Имя файла: Имя файла.reg Тип файла: Все файлы Кодировка: UTF-8 Дальше сохранить, закрыть и заново запустить, согласить изменить реестр из не офц источников и всё. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\telnet] @="URL:Telnet Protocol" "EditFlags"=dword:00000002 "FriendlyTypeName"="@ieframe.dll,-907" "URL Protocol"="" "BrowserFlags"=dword:00000008 [HKEY_CLASSES_ROOT\telnet\DefaultIcon] @="C:\putty\putty.exe,0" [HKEY_CLASSES_ROOT\telnet\shell] @="" [HKEY_CLASSES_ROOT\telnet\shell\open] [HKEY_CLASSES_ROOT\telnet\shell\open\command] @="\"C:\putty\putty.exe" %1" [HKEY_CLASSES_ROOT\ssh] @="URL:SSH Protocol" "EditFlags"=dword:00000002 "FriendlyTypeName"="@ieframe.dll,-907" "URL Protocol"="" "BrowserFlags"=dword:00000008 [HKEY_CLASSES_ROOT\ssh\DefaultIcon] @="C:\putty\putty.exe,0" [HKEY_CLASSES_ROOT\ssh\shell] @="" [HKEY_CLASSES_ROOT\ssh\shell\open] [HKEY_CLASSES_ROOT\ssh\shell\open\command] @="\"C:\putty\putty.exe" %1" [HKEY_CLASSES_ROOT\putty] @="URL:PuTTY Protocol" "EditFlags"=dword:00000002 "FriendlyTypeName"="@ieframe.dll,-907" "URL Protocol"="" "BrowserFlags"=dword:00000008 [HKEY_CLASSES_ROOT\putty\DefaultIcon] @="C:\putty\putty.exe,0" [HKEY_CLASSES_ROOT\putty\shell] @="" [HKEY_CLASSES_ROOT\putty\shell\open] [HKEY_CLASSES_ROOT\putty\shell\open\command] @="\"C:\putty\putty.exe" -load \"%1\"" Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...