Python-运行命令,然后在提示时自动输入

Python-运行命令,然后在提示时自动输入,python,ssh-keys,Python,Ssh Keys,作为更大脚本的一部分,我正在运行ssh-keygen来生成RSA公钥。我不打算使用密码短语或更改默认文件夹位置。但是,我仍然需要处理ssh-keygen中关于文件名和密码短语的提示。我如何避免使用ssh-keygen的选项或脚本中的选项处理这些提示?您可以将它们作为参数传递,以避免需要任何输入: ssh-keygen -q -N '' -C 'generated key' -t rsa -f /path/to/key 一般来说,这些问题可以用pexpect:来解决,它是expect的Pytho

作为更大脚本的一部分,我正在运行
ssh-keygen
来生成RSA公钥。我不打算使用密码短语或更改默认文件夹位置。但是,我仍然需要处理
ssh-keygen
中关于文件名和密码短语的提示。我如何避免使用
ssh-keygen的选项或脚本中的选项处理这些提示?

您可以将它们作为参数传递,以避免需要任何输入:

ssh-keygen -q -N '' -C 'generated key' -t rsa -f /path/to/key

一般来说,这些问题可以用pexpect:来解决,它是expect的Python包装器。它允许您等待某个字符串被打印出来,然后发送响应,就像在终端中键入的一样。

这是一个简洁的小模块,我来看看。