有没有办法关联网站上的超链接,并ssh://10.10.10.10
使用 PuTTY 自动打开和连接?
我正在寻找一种可以跨浏览器(IE 和 Firefox)运行且易于实施的解决方案。我无法指示我们的支持团队手动执行注册表编辑 :(
有人知道怎样让它工作吗?
答案1
答案2
不幸的是 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/
另一种方法是使用温SCP。 它注册自身来处理ssh://
URL和在 PuTTY 中打开由 URL 指定的会话。
(我是 WinSCP 的作者)
答案3
看看这个: https://gist.github.com/sbiffi/11256316
我想要一个不需要改变腻子的解决方案。
它将 Visual Basic 脚本与 ssh:// 和 telnet:// URL 关联起来,该脚本会解析 URL 并使用标准参数(如 putty.exe -ssh -l login)启动 putty。
另外还有 2 个优点: - 密码也可以通过 URL 传递以进行自动身份验证 - 无需更改 putty,因此适用于所有补丁。
答案4
这是一个注册表类,它将在将 URI 传递给 PuTTY 之前从 URI 中删除 ssh:// 和尾随(实际上是全部)/,以便 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 运行命令
我将 params 设置为参数“ssh://domain.tld/”。然后,我使用“!params:ssh://=!”从中去除“ssh://”,这是对变量 params 上的“ssh://”进行查找替换,将其替换为“”。我将其重新分配给 params,现在 params =“domain.tld/”。然后,我将其传递给 putty,并执行另一次查找替换,将“/”替换为“”,以删除 Windows 放置的尾部斜杠,留下 PuTTY 可以使用的“domain.tld”。
这样我就可以在注册表项中输入的命令中处理所有内容。它根本不进行任何清理,而且很容易被利用(例如 ssh://&¬epad 打开记事本),因此您可能需要将 URI 更改为只有您知道的内容。