Python 模块 pexpect - 如何连接到 ssh 服务器然后 运行 bash 命令
Python module pexpect - how to connect to ssh server and then run bash commands
我是新手,找不到我的问题的完整答案。所以我在这里问。
我正在使用 python 和 pexpect 模块连接到 ssh 服务器和 运行 一些命令。但是,某些命令不起作用。我查看了文档,我可以看到 运行 宁命令如下:
ls -l | grep -i <Filter>
因为我必须使用 spawn 命令来 运行 bash 脚本
child = pexpect.spawn('/bin/bash -c "ls -l | grep LOG > logs.txt"')
然而,我连接到服务器的方式是通过发送带有密钥的 ssh 命令:
p = pexpect.spawn("ssh -t -t NAME@IP -i ~/.ssh/Keyfile ")
所以我不能 运行 里面有 bash 命令的 spawn 命令(我可以吗?)
响应应该是密码请求,因为它将我重定向到另一台机器。
如何使用 spawn 命令,以便我可以使用密钥连接到服务器输入重定向机器的密码,然后 运行 一个 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"');
我是新手,找不到我的问题的完整答案。所以我在这里问。 我正在使用 python 和 pexpect 模块连接到 ssh 服务器和 运行 一些命令。但是,某些命令不起作用。我查看了文档,我可以看到 运行 宁命令如下:
ls -l | grep -i <Filter>
因为我必须使用 spawn 命令来 运行 bash 脚本
child = pexpect.spawn('/bin/bash -c "ls -l | grep LOG > logs.txt"')
然而,我连接到服务器的方式是通过发送带有密钥的 ssh 命令:
p = pexpect.spawn("ssh -t -t NAME@IP -i ~/.ssh/Keyfile ")
所以我不能 运行 里面有 bash 命令的 spawn 命令(我可以吗?)
响应应该是密码请求,因为它将我重定向到另一台机器。
如何使用 spawn 命令,以便我可以使用密钥连接到服务器输入重定向机器的密码,然后 运行 一个 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"');