我想使用 telnet 在远程机器上执行命令,
telnet xxxx 命令或类似命令
我想将其作为 Python ( subprocess )脚本的一部分包含在内,因此需要将它放在一行中。或者,还有其他方法可以做到这一点吗?
任何帮助表示赞赏。
谢谢。
与其依赖subprocess
,您可以尝试使用 Python 的内置telnetlib
函数。
文档中提供了一个几乎完全符合您要求的完整示例:http: //docs.python.org/library/telnetlib.html#telnet-example
我个人也想看看目标系统上是否可以使用 SSH。您不仅可以使用安全连接,还可以设置 SSH 密钥并使用 SSH 的内置支持来执行单个命令(例如ssh user@example.com ls -l
)。
#!/bin/sh
empty -f -i in -o out telnet foo.bar.com
empty -w -i out -o in "ogin:" "luser\n"
empty -w -i out -o in "assword:" "TopSecret\n"
empty -s -o in "who am i\n"
empty -s -o in "exit\n"
也许这个解决方案会很有用,但正如其中所述,如果您需要用户/密码身份验证,它将无法工作。
为了跳过手动用户/密码验证,设置 ssh 密钥是可行的方法。这里有一个简短的解释:SSH to a server without password for Admin Ease