我想要一个我正在开发的网站,以便在PuTTY
类型网址上打开ssh://0.0.0.0
。我在Chrome和Firefox中使用此功能,但在Internet Explorer中出现以下错误:
Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access this item.
其次是:
Unable to open this helper application for ssh://0.0.0.0/.
The protocol specified in this address is not valid. Make sure the address is correct, and try again.
以下是我的注册表项:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /k set in=\"%l\" & call set in=%%in:ssh:=%% & call set in=%%in:/=%% & call \"C:\\Program Files (x86)\\PuTTY\\putty.exe\" %%in%% & exit"
我做了一个快速实验,看起来这个问题归因于cmd
和call
。一旦我删除它们,我就会得到预期的结果。但是,我仍然需要将字符串操作作为PuTTY(使用RealVNC VNC Viewer的vnc
URL的相同情况)只需要没有协议前缀的主机。
编辑:似乎cmd
仅导致问题。 call
可以与预期的行为一起使用。
答案 0 :(得分:5)
我猜Internet Explorer会调用cmd.exe
存在权限问题。相反,我必须完全从PowerShell
开始。这是工作的注册表项,绝对没有其他脚本或PuTTY程序修改,在我在网上找到的一些解决方法中显示:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -Command \"$uri = [System.Uri]'%l';&\"${env:ProgramFiles}\\PuTTY\\putty.exe\" -P $uri.Port $uri.GetComponents([System.UriComponents]::UserInfo -bor [System.UriComponents]::Host, [System.UriFormat]::UriEscaped)\""
我现在可以从所有三个主要浏览器中打开SSH
和VNC
个链接。