PuTTY 在 Windows 中使用自定义 SSH 协议处理程序自动登录

问题描述 投票:0回答:2

我正在尝试在 Windows 注册表中注册的自定义

ssh://
协议处理程序中设置自动登录。 一旦 PuTTY 界面打开,我想自动登录。

有没有办法在用户名和密码下面的代码中设置? 下面这段代码只会打开 PuTTY,但我必须自己在 PuTTY 界面中输入用户名和密码。

任何想法如何去做或者是否有另一种或更好的方法?

感谢您的支持。

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:/=!\""

windows ssh putty
2个回答
1
投票

用途:

[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:/=!\" -l username -pw password"

0
投票

这里是 PUTTYURL.CMD,它根据 RFC1738 处理完整的 URL

@ECHO OFF
SETLOCAL
REM    https://www.rfc-editor.org/rfc/rfc1738  
REM    (<scheme>)://((<user>)?:(<pass>)?)@)?(<host>)(:<port>)?(/<path>)?
FOR /F "delims=/ tokens=1,2" %%A IN ("%1") DO (
    SET scheme=%%A
    SET uphp=%%B
)
FOR /F "delims=@ tokens=1,2" %%A IN ("%uphp%") DO (
    IF "%%B"=="" SET hostport=%%A
    IF NOT "%%B"=="" (
         SET userpass=%%A
         SET hostport=%%B
    )
)
IF NOT "userpass" == "" FOR /F "delims=: tokens=1,2" %%A IN ("%userpass%") DO (
    SET user=-l "%%A"
    IF NOT "%%B"=="" SET pass=-pw "%%B"
)
FOR /F "delims=: tokens=1,2" %%A IN ("%hostport%") DO (
    SET host=%%A
    IF NOT "%%B" == "" SET port=-P %%B
)
IF "%scheme%"=="ssh:" START "%1" PUTTY.EXE %user% %pass% %port% %host%
© www.soinside.com 2019 - 2024. All rights reserved.