Зробіть відкрити посилання ssh: // за допомогою PuTTY


15

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

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

Хтось знає, як це зробити?

Відповіді:


8

Існує вилка Putty на ім'я Kitty , її веб-сайт містить інструкції робити саме те, що ви хочете.

Він включає зміни в реєстрі, але це відбувається шляхом завантаження.


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

Я хотів рішення, яке не потрібно міняти шпаклівкою.

Він пов'язує базовий візуальний сценарій до ssh: // та telnet: // URL-адрес, який аналізує URL-адресу та запускає шпаклівку, використовуючи стандартні параметри, такі як вхід putty.exe -ssh -l.

2 додаткові переваги: ​​- пароль можна передавати в URL також для автоматичної автентифікації - не потрібно змінювати шпаклівку, адаптовану таким чином до всіх патчів.


2
Я з'ясував спосіб зробити це за допомогою просто ключів реєстру за допомогою PowerShellкоманди. Ось ви йдете.
ubomb

@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: ON - те саме, що "SetLocal EnableDelayedExpansion"

/ c виконує команду

Я встановлюю параметри до параметра, який є 'ssh: //domain.tld/'. Потім я знімаю 'ssh: //' з нього за допомогою '! Params: ssh: // =!', Що є знахідкою-заміною для 'ssh: //' to '' у змінних парам. Я повертаю це до парам, тепер params = 'domain.tld /'. Потім я передаю це на шпаклівку і роблю іншу знахідку-заміну, щоб замінити '/' на '', щоб видалити кінцеву косу рису, яку ставить Windows, залишаючи "domain.tld", яку може використовувати PuTTY.

Це дозволяє мені обробити це все в команді, введеній у запис реєстру. Це взагалі не робить санітарно-гігієнічні засоби і легко експлуатується (напр. Ssh: // && блокнот відкриває блокнот), тому ви можете змінити URI на те, що ви тільки знаєте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.