如何保留与 paramiko 的会话

How to retain the session with paramiko

我正在尝试做这样的事情: 我有一个通过 paramiko 连接的 ssh 会话。现在我想发出依赖于先前命令的命令。

例如;我首先发出 'cd ~/my_folder',然后发出 'ls',因为每个命令的 ssh 会话都是分开的,所以我的第一个命令不会影响第二个命令。

如何跨多个命令维护会话?我使用 ssh.exec_command() 函数来发出命令。

我知道我可以做类似 ssh.exec_command('cd ~/my_folder; ls') 的事情,但是,让我们假设我不能在我的环境中那样做。

您可以使用 SSHClient.invoke_shell 开始互动 shell。您可以将提示设置为一些易于识别的值,然后发送命令并扫描接收到的数据以查找提示来划分返回的数据。

另一种选择是使用 pexpectpxssh 模块,它已经为您完成了一些繁重的工作。