python - 在 Python 中创建和维护多个 ssh session

标签 python ssh subprocess

我的程序启动后,它会打开任意数量的 ssh session (用户定义)并无限期地在服务器上运行特定命令(当 true 循环时)或直到用户退出。出于效率原因,我只想创建每个 session 一次,然后能够运行命令直到用户退出。

我如何在 python 中执行此操作?我在另一篇文章中遇到了一个很酷的方法,它使用 subprocess 来运行命令并捕获其 STDOUT。我如何才能首先启动 session ,然后运行循环命令?

任何指向 Python 中类似过程的东西的链接也将不胜感激。这是我的第一个 Python 应用程序。

最佳答案

暂时忽略 Python,你可以通过添加这个来复用 ssh session

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 1h

到您的 ~/.ssh/config 文件。连接到一台机器一次后,到这台机器的 ssh session 将保持打开状态,随后的命令将在这台机器上几乎同时执行。然后,您可以使用 Python 子进程调用 ssh 并根据需要在该机器上执行命令, session 将被重用,而无需执行任何特殊操作。

如果您不想让 session 多路复用成为默认行为(或者您正在为可能没有将其作为默认设置的其他用户部署)。

关于python - 在 Python 中创建和维护多个 ssh session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9322401/

相关文章:

Python os.popen 和 unicode

ssh - 将公钥发送到远程主机的命令

linux - 使用 ssh 比较目录

python - 写入 Python subprocess.Popen 对象的文件描述符 3

python - 在python中替换文件中的字符串

python - 检查Python中的另一个字典中是否存在字典值

python - Python函数定义中的正斜杠? [复制]

bash - SSH 然后改 Shell

python - 使用生成的文件名进行子进程调用

python - 如何从 django 的子目录中打开终端