Paramiko模块持续交互
时间: 2023-11-13 12:03:05 浏览: 103
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Paramiko是一个Python模块,提供了SSH客户端和服务端的实现,可以通过SSH协议进行安全的远程连接。如果需要在SSH连接上进行持续交互,可以使用Paramiko模块的`invoke_shell()`方法。
接下来给出一个简单的示例代码,实现在SSH连接上进行持续交互的功能:
```python
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('your_ssh_server', username='your_username', password='your_password')
# 打开一个新的Shell
channel = ssh.invoke_shell()
# 发送命令
channel.send('ls\n')
# 接收命令输出
while True:
buf = channel.recv(1024).decode('utf-8')
if buf.endswith('$ '):
print(buf)
break
else:
print(buf)
# 发送下一个命令
channel.send('pwd\n')
# 接收命令输出
while True:
buf = channel.recv(1024).decode('utf-8')
if buf.endswith('$ '):
print(buf)
break
else:
print(buf)
# 关闭连接
ssh.close()
```
在上面的示例中,首先通过`paramiko.SSHClient()`方法创建一个SSH连接,然后通过`invoke_shell()`方法打开一个新的Shell,接着发送命令并接收命令输出,最后关闭连接。可以根据需要循环发送命令和接收命令输出,实现持续交互的功能。
阅读全文