Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ssh命令需要交互式输入_Python_Linux_Bash_Ssh - Fatal编程技术网

Python ssh命令需要交互式输入

Python ssh命令需要交互式输入,python,linux,bash,ssh,Python,Linux,Bash,Ssh,我正在尝试使用ssh连接到远程计算机并运行脚本。这个脚本有一个交互确认:“您想运行它吗?{Y/N}”之类的东西。如何通过ssh命令直接对其说“Y” out=$(sshpass-p“abc”ssh-o StrictHostKeyChecking=no-l root x.x.x.“/abc.py”) 我们应该能够使用“expect”脚本解决您的问题。您可以点击以下链接以供参考- .不确定这是否适用于sshpass,但它肯定适用于基于密钥或密码的身份验证的裸SSH如果您在shell中,则始终可以使用e

我正在尝试使用ssh连接到远程计算机并运行脚本。这个脚本有一个交互确认:“您想运行它吗?{Y/N}”之类的东西。如何通过ssh命令直接对其说“Y”

out=$(sshpass-p“abc”ssh-o StrictHostKeyChecking=no-l root x.x.x.“/abc.py”)


我们应该能够使用“expect”脚本解决您的问题。您可以点击以下链接以供参考-
.

不确定这是否适用于sshpass,但它肯定适用于基于密钥或密码的身份验证的裸SSH如果您在shell中,则始终可以使用
echo$input |/input script.py | sh
等管道将输入作为标准输出提供给脚本,如下所示-

$ ssh -i UAT.pem -o StrictHostKeyChecking=no -l ec2-user 13.222.237.508 "echo hello | ./1.py"
Please enter something: 

you entered hello
Python脚本-

#!/usr/bin/env python
var = raw_input("Please enter something: ")
print "\n"
print "you entered", var

希望这对你也有用

是的,
expect
可以使用,但是关于StackOverflow的一个好答案应该是自包含的——实际上可以单独解决OP的问题,即使其中包含的任何链接都坏了。因此,如果它实际显示了一个
expect
用于手头工作的示例,那么这将更加强大<代码>输出=$(sshpass-p“abc”ssh-o StrictHostKeyChecking=no-l root x.x.x.x'./abc.py几乎所有规范化的Unix工具都允许您使用标志或类似内容覆盖这些确认。例如:您在这里使用的是
ssh
的主机密钥检查。在您尝试在r中模拟人工键入之前,请使用
/abc.py
检查它是否提供了此类功能回应。