在 Windows 环境中无需任何手动干预即可通过脚本终止 SSH 调用
Terminate SSH call through scripting without any manual intervention in Windows environment
我想在这里实现的目标:
我想通过 PuTTY 自动启动远程 SSH 会话的日常过程,调用一些命令将其响应放入 txt 文件并通过脚本终止此 SSH 会话。
现在按照 Mofi 的建议,我有这个东西在工作,就像:
plink remote_host_name -m "dir\with\Inputcommands.txt" -l username -pw password >> "dir\with\OutputResponse.txt"
这实际上工作正常,但我希望它能够在 OutputResponse
保存后自行 终止 此会话。
关于如何在 Windows 7 环境中通过相同的 script/without 手动干预来终止它有什么建议吗?
我使用 64 位版本的 PuTTY 从 Download PuTTY: latest release (0.70) 下载了 putty.zip
及其附加工具,并将 ZIP 文件解压缩到临时目录 C:\Temp\PuTTY
.
接下来我双击 C:\Temp\PuTTY\PUTTY.CHM
打开此帮助文件,其中包含完整的 PuTTY 用户手册。
在显示的内容页面上,我首先单击列表项 2.5 注销 并了解如何从会话中注销。我读到应该使用服务器自己的注销命令,这可能因服务器而异,如果不知道,应该尝试 logout 或 exit。
我单击了按钮 返回,然后单击了 3.8 PuTTY 命令行 的下一步内容页面。在这个帮助页面上,我首先点击了 3.8.1 从命令行启动会话。我打开命令提示符window,使用cd /D C:\Temp\PuTTY
将当前目录设置为PuTTY的目录,并根据帮助页面上的信息开始编写命令行。
plink -ssh username@hostname
我再次单击帮助中的按钮 返回,然后单击列表项 3.8.3.4 -l:指定登录名。阅读后我明白这是为主机(名称或 IP 地址)指定 user/login 名称的替代方法,我不需要已经键入但尚未执行的命令行。因此,在命令提示符 window.
中的命令行上无需更改
我再次单击按钮 返回 和列表项的下一个 3.8.3.6 -m:从文件读取远程命令或脚本.阅读此帮助页面后,我在包含 PuTTY 文件的同一临时文件夹中创建了一个名为 GetLists.txt
的文本文件,其中包含以下行:
ls -l /
ls -l /lib
history -c ; exit
此命令文件已保存为带有 DOS/Windows 行终止符的 ANSI 文件。我不知道 Unix 行结尾是否会更好。在 PuTTY.
的帮助下,没有关于线路终止类型的内容
并且我将命令提示符 window 中已经输入的命令行扩展为:
plink -ssh username@hostname -m GetLists.txt
我再次单击帮助中的按钮 返回,然后单击列表项 3.8.3.8 -pw:指定密码。阅读此帮助页面上的两个小段落后,我再次将命令提示符 window 中的命令行扩展为:
plink -ssh username@hostname -m GetLists.txt -pw password
我再次点击帮助中的 返回 按钮,看看是否还有其他重要的东西,但我看起来并不那么重要。
所以我切换到命令提示符window并执行了这个命令。它按预期工作,显示了两个目录列表。 (我在 PUTTY.EXE 个月或几年前(我不记得了)为此主机使用过,因此关键数据已经存储在我的计算机上。)
我按下 UP 键并将命令行扩展为:
plink -ssh username@hostname -m GetLists.txt -pw password >DirectoryLists.txt
我执行了这个命令,它没有在屏幕上显示任何东西。
所以我输入了下一个命令:
type DirectoryLists.txt
并且输出是之前看到的两个目录列表。
结论:我无法在我连接的主机上用我的测试配置重现你的问题。
顺便说一句: 我在几个月或几年前(我不记得了)使用 PuTTY 连接到使用旧版本 0.64 的主机。但这是我第一次使用 plink.exe
。我没有任何问题阅读手册并按此处所述逐步创建命令行。
我想在这里实现的目标:
我想通过 PuTTY 自动启动远程 SSH 会话的日常过程,调用一些命令将其响应放入 txt 文件并通过脚本终止此 SSH 会话。
现在按照 Mofi 的建议,我有这个东西在工作,就像:
plink remote_host_name -m "dir\with\Inputcommands.txt" -l username -pw password >> "dir\with\OutputResponse.txt"
这实际上工作正常,但我希望它能够在 OutputResponse
保存后自行 终止 此会话。
关于如何在 Windows 7 环境中通过相同的 script/without 手动干预来终止它有什么建议吗?
我使用 64 位版本的 PuTTY 从 Download PuTTY: latest release (0.70) 下载了 putty.zip
及其附加工具,并将 ZIP 文件解压缩到临时目录 C:\Temp\PuTTY
.
接下来我双击 C:\Temp\PuTTY\PUTTY.CHM
打开此帮助文件,其中包含完整的 PuTTY 用户手册。
在显示的内容页面上,我首先单击列表项 2.5 注销 并了解如何从会话中注销。我读到应该使用服务器自己的注销命令,这可能因服务器而异,如果不知道,应该尝试 logout 或 exit。
我单击了按钮 返回,然后单击了 3.8 PuTTY 命令行 的下一步内容页面。在这个帮助页面上,我首先点击了 3.8.1 从命令行启动会话。我打开命令提示符window,使用cd /D C:\Temp\PuTTY
将当前目录设置为PuTTY的目录,并根据帮助页面上的信息开始编写命令行。
plink -ssh username@hostname
我再次单击帮助中的按钮 返回,然后单击列表项 3.8.3.4 -l:指定登录名。阅读后我明白这是为主机(名称或 IP 地址)指定 user/login 名称的替代方法,我不需要已经键入但尚未执行的命令行。因此,在命令提示符 window.
中的命令行上无需更改我再次单击按钮 返回 和列表项的下一个 3.8.3.6 -m:从文件读取远程命令或脚本.阅读此帮助页面后,我在包含 PuTTY 文件的同一临时文件夹中创建了一个名为 GetLists.txt
的文本文件,其中包含以下行:
ls -l /
ls -l /lib
history -c ; exit
此命令文件已保存为带有 DOS/Windows 行终止符的 ANSI 文件。我不知道 Unix 行结尾是否会更好。在 PuTTY.
的帮助下,没有关于线路终止类型的内容并且我将命令提示符 window 中已经输入的命令行扩展为:
plink -ssh username@hostname -m GetLists.txt
我再次单击帮助中的按钮 返回,然后单击列表项 3.8.3.8 -pw:指定密码。阅读此帮助页面上的两个小段落后,我再次将命令提示符 window 中的命令行扩展为:
plink -ssh username@hostname -m GetLists.txt -pw password
我再次点击帮助中的 返回 按钮,看看是否还有其他重要的东西,但我看起来并不那么重要。
所以我切换到命令提示符window并执行了这个命令。它按预期工作,显示了两个目录列表。 (我在 PUTTY.EXE 个月或几年前(我不记得了)为此主机使用过,因此关键数据已经存储在我的计算机上。)
我按下 UP 键并将命令行扩展为:
plink -ssh username@hostname -m GetLists.txt -pw password >DirectoryLists.txt
我执行了这个命令,它没有在屏幕上显示任何东西。
所以我输入了下一个命令:
type DirectoryLists.txt
并且输出是之前看到的两个目录列表。
结论:我无法在我连接的主机上用我的测试配置重现你的问题。
顺便说一句: 我在几个月或几年前(我不记得了)使用 PuTTY 连接到使用旧版本 0.64 的主机。但这是我第一次使用 plink.exe
。我没有任何问题阅读手册并按此处所述逐步创建命令行。