在 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“密码” @回声