我是新手,我找不到我的问题的完整答案。所以我在这里问。
我正在使用 python 和 pexpect 模块连接到 ssh 服务器并运行一些命令。但是有些命令不起作用。我查看了文档,可以看到运行如下命令:
ls -l | grep -i <Filter>
因为我必须使用 spawn 命令来运行 bash 脚本
child = pexpect.spawn('/bin/bash -c "ls -l | grep LOG > logs.txt"')
但是,我连接到服务器的方式是发送带有 key 的 ssh 命令:
p = pexpect.spawn("ssh -t -t NAME@IP -i ~/.ssh/Keyfile ")
所以我不能在其中运行带有 bash 命令的 spawn 命令(或者我可以吗?)

响应应该是密码请求,因为它会将我重定向到另一台机器。

如何使用 spawn 命令,以便我可以使用 key 连接到服务器 输入重定向机器的密码,然后运行 ​​bash 命令。

注:我正在尝试找出 bash 部分。与服务器的连接和重定向+密码插入已经对我有用。

请您参考如下方法:

您可以在下一行发送命令:

ssh = pexpect.spawn('ssh  -t -t NAME@IP -i ~/.ssh/Keyfile') 
#You may write expect here to check if the ask if for password or some other error or the initial banner message 
ssh.sendline('password') 
#You may check if the password is successful 
ssh.sendline('/bin/bash -c "ls -l | grep LOG > logs.txt"'); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!