如何通过创建批处理文件在PuTTY中键入命令?


3

我创建了一个.bat自动获取SSH服务器(Jump Server)访问权限的文件。现在,我有几个命令,我想在那个窗口中点击。

对于前者。(要获得root访问权限)

usrun -u root rush

使用此命令,它将要求我输入密码。

那么,我怎样才能完全通过.bat文件来实现呢?


我不知道如何-m在语法中使用以及我应该在记事本文件中使用哪些命令。
Umang 2016年

Unix和Putty和Batch?原谅我,我有一段时间没有使用过Putty,谢天谢地。这是我在学校使用的一种工具,当它被强加给我时,但现在我使用了更好的工具。我离题了。如果它是你正在寻找的批处理,那么你正在谈论Windows。我建议使用Windows root git-scm.com/download/win的Windows工具。有很多,但是这个与Putty相比,在它的比较,但与Windows更好的步行。“Linux”命令,但在Windows和Windows的目录中。
ejbytes 2016年

@ejbytes:谢谢您的回复。看起来我没能解释我的确切案例。让我告诉你我在这里的计划。我有一个Putty和我一起连接Jump服务器(这是Unix)。我正在使用Window系统,我将使用Putty。所以,要连接这个Jump服务器,我打算制作一个.bat文件。合理?PS; 我没有任何关于制作这样的批处理文件的背景知识。我是新手。:(
Umang

Answers:


4

要使用PuTTY自动执行命令,请使用-m开关传递带有要运行的命令的文本文件,如:

putty.exe -ssh user@host  -m commands.txt

哪里commands.txt会包含

usrun -u root rush

但这不会帮助你使用密码,因为这是usrun命令的输入,而不是自己的命令,所以-m这里没用。我不知道usrun,所以我不知道它是否有办法“验证”任何其他方法,而不是“键入”密码。通常,每当您尝试自动输入密码时,您就会做错事。这是一个安全风险。始终检查是否有更好(=更安全)的方式。


另一个问题是进一步的命令 如果要在同一环境/ shell中执行要执行的所有命令,则可以将它们commands.txt逐行放入。

command1
command2

虽然请注意并非所有SSH服务器都支持多行。但多数人确实如此。如果没有,您可以始终使用特定于服务器/ shell的方式在一行上执行多个命令,如:

command1 && command2

但是,如果进一步的命令实际上是第一个命令的子命令,什么是一个像命令的情况下sushbashsshftp,等(和可能与的情况下usrun),进一步的命令实际上是一个输入到第一,而不是独立的命令顶级环境/ shell。这实际上与上面的密码输入问题完全相同。

与密码问题相反,对于子命令,主命令可能具有另一种机制来提供它们而不是使用输入。


话虽如此,您可以使用Plink(PuTTY命令行连接工具)代替PuTTY。它是PuTTY软件包中的工具,可以像PuTTY一样工作,但它是一个控制台,而不是GUI应用程序。因此,它可以使用输入/输出重定向。因此,您甚至可以从文件中重定向主命令的密码或子命令,就像您在控制台上键入它们一样。无论如何,Plink是自动执行任务的工具,而不是PuTTY。

echo usrun -u root rush>input.txt
echo password>input.txt
echo command_for_usrun>input.txt
plink -ssh user@host < input.txt

或者使用KiTTY和它的-cmd开关来做你想要的。KiTTY是一个GUI应用程序(它是PuTTY的克隆)。它的-cmd开关基本上模拟了键入,因此它没有命令输入(密码和子命令)的问题。但我发现它相当不可靠。我真的不推荐它。但是你可能会发现它足以完成你的任务。


马丁,非常感谢您的详细解释。非常感谢。如果你能帮助我的话,你的答案会出现几个问题。这是我的.bat样子。C:\ Users_my_user_ \ Putty.exe -load“ Jump_Server ”-l username -pw password -m“ 包含命令的文本文件路径 ”这成功地将我带到了我想要的位置。现在,从技术上讲,它应该采用我在文本文件中留下的命令,但它没有采取。文本文件只包含usrun -u root rush任何想法这里有什么问题?
Umang 2016年

我会手动输入密码 - 没关系!! 但是进一步的命令怎么样?我可以在同一个文本文件中添加它们吗?再次感谢。
Umang 2016年

关于你所说的第二个选项,使用该应用程序将很困难,因为这是我不会用于个人用途的东西。希望你能得到我:)如果你能帮助Putty,那就太好了!!
Umang 2016年

查看更多命令的更新答案+如果进一步的命令是子命令,usrun则无法将其与输入密码相结合(至少不能使用简单的命令行工具)
Martin Prikryl 2016年

+看到我对小猫的暗示
马丁普里克里尔2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.