通过 Windows 批处理文件使用 PuTTY SSH 连接到远程服务器?

通过 Windows 批处理文件使用 PuTTY SSH 连接到远程服务器?

在 Windows 上,我使用 PuTTY 通过 SSH 登录远程服务器。我想使用批处理脚本通过 PuTTY 通过 SSH 连接到远程服务器。该服务器运行基于 Linux 的操作系统。

我使用以下命令来执行此操作:

start C:\Windows\System32\putty.exe -ssh server_name -l pankmish -pw wxyz

但是我收到以下错误:

无法连接到远程主机

如果我改用这个命令:

start C:\Windows\System32\putty.exe -ssh server_name -l user_name

一切运行正常,我得到了一个带有用户名“user_name”的PuTTY窗口。如果我提供正确的密码,我就能连接到服务器。但是通过批处理脚本,我无法在提示时提供密码。

我该如何解决这个问题?

答案1

我尝试使用命令行传递密码,对我来说效果很好。

start C:\Users\pankmish\Downloads\putty.exe -ssh server_name -l user -pw %1

并从我的 Windows cmd 执行以下命令

test_file.bat 密码

答案2

确保 putty 已安装,并且 putty.exe 位于 C:\Windows\System32

打开记事本:输入以下内容

start putty <username@ip/hostname> -pw <password>

将上面的内容替换为您的用户名、ip 和密码,然后将文件保存为 .bat 文件。我认为这应该可以。

答案3

你可以尝试同样的技巧这个答案

@if (@CodeSection == @Batch) @then

@echo off

rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Start the putty window with the user name only
start C:\Windows\System32\putty.exe -ssh server_name -l user_name

rem Send the password to putty window
%SendKeys% "wxyz{ENTER}"

goto :EOF

@end

WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));

请发布结果。

答案4

我使用此代码输入用户的 IP 地址。用双引号“”填写用户名和密码:

@echo 关闭
set /p id="输入IP地址:"

启动“C:\Program Files\putty.exe”-ssh%id%-l 用户名-pw“密码”

@回声

相关内容