Answers:
使用命令行的PuTTY版本plink.exe
初始化与所选主机的SSH连接。使用-ssh
交换机连接SSH。使用-m
开关,您可以包括命令文件:
plink.exe -ssh host1 -m C:\path\to\commands.txt
最后一步是创建一个包含plink.exe
所需参数的快捷方式。
查阅Plink文档中的其他各种参数: Plink.exe文档
-ssh host1
与腻子配置文件相对应的答案user@host
plink site command
使用PuTTY进行相同的操作(除外command
)。Plink和PuTTY具有基本相同的命令行选项集。
要自动执行命令,请使用Plink(来自PuTTY软件包),而不要使用PuTTY本身。
Plink在其命令行上接受命令:
plink.exe user@host command
如果要继续使用PuTTY,则可以使用-m
switch指定命令文件(Plink也支持该-m
开关)。
-i key
或-pw password
plink site command
使用PuTTY进行相同的操作(除外command
)。Plink和PuTTY具有基本相同的命令行选项集。
您可以使用腻子配置来实现此目的。
加载腻子并配置会话。
在此处输入您要运行的远程命令:
然后,在单击“ 打开 ” 之前,返回“ 会话 ”选项卡(在顶部),然后保存您的配置。
现在,创建的快捷方式putty.exe
,添加-load
标志,例如:
%PATH_TO_PUTTY%\putty.exe -load my_config
现在,您只需单击快捷方式,它将加载您的会话并执行命令。
如果您使用的是Windows 10,则您可能想知道Microsoft 据报道具有Beta版的OpenSSH(客户端和服务器):
[…]转到“管理可选功能”,然后转到“添加功能”。然后,您可以向下滚动列表,在Windows中找到OpenSSH客户端(测试版)和OpenSSH服务器(测试版)功能。在Windows上运行另一个远程服务的想法可能令人生畏,因此如果您不想安装服务器,我们也不会怪您。
安装完成后,您只需启动命令行并使用ssh,然后键入,即可使用OpenSSH客户端
ssh ubuntu@someIP
。这是
ssh
我们通过Windows OpenSSH Client获得的当前(截至2017年11月28日)命令使用指南:C:\WINDOWS\system32>ssh usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] C:\WINDOWS\system32>
如果这可行,那么您应该可以ssh
像在* Nix上那样使用:
C:\WINDOWS\system32>ssh user@host "ls -l ~"
只是以为我会插入我编写的脚本,希望可以节省一些人的语法和手册页研究时间
a)SingleIP,IP范围或IPList文件
b)在IP /范围上运行的脚本名称(实际的UNIX sh / ksh类型脚本)
c)(可选)对端口22打开进行nmap扫描(即,某些非Linux机器的子网)
-想要避免腻子无法连接的IP,避免脚本能够正常继续
d)(可选)运行pscp命令自动缓存主机密钥(putty不会自动执行此操作)
该批次假定:
1.您已经在C:\ Program Files \ PuTTY \中安装了完整的PuTTY软件包和SSH密钥
2.安装在C:\ Program Files \ PuTTY \ scripts \中的批处理/脚本/ IPlist文件
3. NMAP和PuTTY工作目录在您的命令路径中
https://www.harmonyhit.com/PuttyBatch.bat
这对于跨多个计算机使用单个脚本(例如更新SSL证书)最有用。
这是完整的批处理文件:
@回声关闭 rem您必须修改CACHEKEY和SCRIPT部分以反映您的SSH密钥位置 设置IPFILE = IPList_temp.txt 设置runagain = n 设置OPTION = 1 设置RANGE = 设置IP = 设置SCAN = n 设置KEYCACHE = n :选项 CLS 回声(工作目录设置为C:\ Program Files \ PuTTY \ scripts \) 回声。 回声1.单个IP ECHO 2. IP列表文件 ECHO 3. IP范围 回声。 设置/ p OPTION =“选择IP类型:” 如果%OPTION%== 3转到IPRANGE 如果%OPTION%== 2转到IPLIST 如果%OPTION%== 1转到单行 回声请选择一个有效的选项 转到选项 :IPRANGE 回声输入IP范围,如以下示例所示。在多个范围之间使用空格: 回声即“ 10.21.0.15-99 10.21.1.15-100” 设置/ p RANGE =输入范围: 回声%RANGE%>%IPFILE% 转到脚本名称 :单身 设置/ p IP =输入IP: 回声%IP%>%IPFILE% 转到脚本名称 :IP列表 设置/ p IP =输入IPList文件名: 复制/ Y%IP%%IPFILE% 转到脚本名称 :SCRIPTNAME set / p SCRIPT =输入脚本名称: 如果不存在%SCRIPT%( echo文件名不存在! 转到脚本名称) 回声。 设置/ p SCAN =是否先扫描Nmap?(推荐的): 如果%SCAN%== n GOTO:RUNCACHE rem检查IP类型是否为“范围”,因为nmap无法从文件读取IP范围,必须直接在nmap命令中键入 如果%OPTION%== 3转到NMAPRANGE :NMAP 回显22端口的扫描IP打开... nmap --open -n -p22 -iL%IPFILE%-oG-| findstr / E向上> nmap_temp.txt 转到AFTERNMAP :NMAPRANGE 回显22端口的扫描IP打开... nmap --open -n -p22%RANGE%-oG-| findstr / E向上> nmap_temp.txt :AFTERNMAP 回声完成 rem nmap格式不正确,以下内容删除了多余的信息 为(nmap_temp.txt)中的/ f“ tokens = 2” %% A做回声%% A >> nmap_temp2.txt rem删除IP末尾的隐藏空间(要求“ repl”在批处理文件目录中) 键入“ nmap_temp2.txt” | 重复“”“”>%IPFILE% :RUNCACHE 设置/ p KEYCACHE =扫描并缓存SSH密钥(y / n)? 如果%KEYCACHE%== n转到脚本 :CACHEKEY rem运行所有IP以缓存SSH主机密钥(如果尚未缓存) / F“令牌= *”(%IPFILE%)中的%% A做(echo y |“ C:\ Program Files \ PuTTY \ pscp.exe” -l root -i“ C:\ Program Files \ PuTTY \ SSH .ppk“ -touch %% A:/ tmp / test) :脚本 为/ F“令牌= 1”(%IPFILE%)中的%% A做(“ C:\ Program Files \ PuTTY \ putty.exe” -ssh %% A -t -l root -i“ C:\ Program Files \ PuTTY \ SSH.ppk“ -m” C:\ Program Files \ PuTTY \ scripts \%SCRIPT%“) 是否存在nmap_temp.txt(del nmap_temp.txt) 如果存在nmap_temp2.txt(del nmap_temp2.txt) 设置/ p runagain =“按Enter键完成,或按y重新运行” 如果%runagain%== y转到选项
SSH.ppk
和脚本) to
程序Files`文件夹。
这是最终的“ CMD”,我可以将其保存在FileServer上并在桌面上创建快捷方式。
::FreeSoftwareServers
::Automated Opening of SSH Tunnel & Execute CMD on Remote Host
::/superuser/1278434/create-a-batch-file-or-shortcut-to-putty-ssh-that-opens-a-session-and-runs-a-c
set puttydir="C:\Program Files\PuTTY"
set exe=plink.exe
::Profile must exist in PuTTY
set remotehost=FileServer
set remotecmd="chmod 777 /mnt/mdadm/torrents -R"
cd %puttydir%
%exe% %remotehost% %remotecmd%
::Test First Manually in CMD Prompt
::Note Remote Host does NOT have access to BashRC Alias's
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer touch /tmp/testfile
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer ~/script.sh
-m
在Plink 上使用switch,因为它允许直接在其命令行上指定命令,请参阅我的答案。