使用PuTTY打开ssh://链接


15

有没有一种方法可以关联ssh://10.10.10.10使用格式自动打开并使用PuTTY连接的网站上的超链接?

我正在寻找一种可以跨浏览器(IE和Firefox)使用并且易于实现的解决方案。我无法指示我们的支持团队手动执行注册表编辑:(

有人知道如何进行这项工作吗?

Answers:


8

有一个名为Kitty的Putty叉子,它的网站上包含有关执行所需操作的说明

它确实涉及注册表更改,但是这些可以通过下载.reg文件并在Windows资源管理器中单击它来实现(我想具有管理员权限)。


5

不幸的是,腻子不能将自己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,在PuTTY中打开URL 指定的会话

(我是WinSCP的作者)


2

看到这个: https //gist.github.com/sbiffi/11256316

我想要一个不需要更换腻子的解决方案。

它将可视化基本脚本与ssh://和telnet:// URL关联,后者解析URL并使用putty.exe -ssh -l login之类的标准参数启动腻子。

另外有2个优点:–密码也可以在URL中传递以进行自动身份验证–无需更改腻子,因此适用于所有补丁。


2
我想出了一种使用PowerShell命令仅使用注册表项的方法。干得好。
ubomb 2015年

@ubomb仅供参考,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/”。然后我用'!params:ssh:// =!'从中剥离'ssh://',这是变量params上'ssh://'到''的查找替换。我将其分配回params,现在params ='domain.tld /'。然后,我将其传递给腻子,并执行另一个查找替换,以将'/'替换为',以删除Windows出现的结尾斜杠,保留PuTTY可以使用的'domain.tld'。

这使我可以在注册表项中输入的命令中进行全部处理。它根本不进行任何消毒,并且易于利用(例如ssh:// && notepad打开记事本),因此您可能希望将URI更改为仅您知道的内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.