我正在尝试在 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:/=!\""
这里是 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%