Перейти к содержимому
Калькуляторы

Ссылки вида ssh:// в Windows и PuTTY

Доброго времени суток!

 

Захотелось нам в нашей внутренней системе мониторинга сделать ссылки сразу на открытие 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?

Изменено пользователем M-a-x-Z

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посмотрите Kitty (форк Putty), там из коробки заявляется:

-sshhandler: create protocols associations (telnet://, ssh://) for internet explorer

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посмотрите Kitty (форк Putty), там из коробки заявляется:

putty.org.ru/features/ssh-handler.html

Обработчик протоколов: интеграция с браузером

 

Вы можете добавить новый обработчиков протоколов, чтобы ссылки вида ssh:// и telnet:// на веб–страницах стали открываться непосредственно в PuTTY.

 

Для этого вам необходимо выполнить команду из командной строки с правами администратора:

putty.exe -sshhandler

 

кроме того, ваш китти врет мухлюет.

Высота поля для работы со списком сохранённых сессий в PuTTY очень маленькая. Единовременно вы можете видеть только 6 сессий. В KiTTY по умолчанию высота этого поля увеличина до 21 строки.

у меня в putty высота поля ограничена высотой экрана.

и все остальные "отличительные достоинства" тоже присутствуют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

putty.org.ru/features/ssh-handler.html

Это ровна та ссылка, про которую я спрашивал в заглавном посте)))

Самая свежая версия (0.68) PuTTY с этого сайта ругается на ключ -sshhandler и не обрабатывает ссылки при ручной правке реестра.

Это дополнительно ставит меня в тупик - почему функция документирована и не реализована.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Открой исходники да посмотри, что как маленький хомяк спрашиваешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Открой исходники да посмотри, что как маленький хомяк спрашиваешь.

Ну хомяк - не хомяк, а анализировать исходники, да и ещё искать там для такого большого проекта ошибки - накладно по времени. Я ж не спрашивал, почему пуття не работает. Вопрос-то мой был ро опыт аналогичных проблем. Но видимо никто не сталкивался.

 

Поэтому пришлось за полчаса изобрести велосипед, который на всякий случай оставлю здесь:

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"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Открой исходники да посмотри, что как маленький хомяк спрашиваешь.

 

Там исходники,

На assembler и C.

Компилеровать кто будет,

ещё из под винды

 

А.С. Пушкин

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На assembler и C. Компилеровать кто будет,

Очевидно что достаточно найти main() и посмотреть что там с ком строкой делается.

Ассемблер поди только для сжатия и крипты.

Компелячить не надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если вы не меняли путь установки, то вот так. Если же вы меняли то открываете блокнот, кидаете туда скрипт, меняя то, что выделено чёрным на свой путь до 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\""

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.