使用 PuTTY 打开 ssh:// 链接

使用 PuTTY 打开 ssh:// 链接

有没有办法关联网站上的超链接,并ssh://10.10.10.10使用 PuTTY 自动打开和连接?

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

有人知道怎样让它工作吗?

答案1

有一个名为 Putty fork猫咪,其网站包括指示做你想做的事。

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

答案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 更改为只有您知道的内容。

相关内容