相关疑难解决方法(0)

SSH连接不是持久的

我有以下脚本SSH进入网络服务器并执行一些命令,由于某种原因SSH连接打开但是当命令执行时它关闭(我认为),结果命令失败,出现以下错误?任何人都可以提供如何使SSH连接持久的信息?

#!/usr/bin/python
import os
import sys
import json
import fileinput
import pwd
from subprocess import Popen, PIPE, STDOUT
import re
import paramiko
import MySQLdb

resource = r'qca-cdit-01'
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(resource, username='username', password='passwordname')
#chan = ssh.get_transport().open_session()
chan = ssh.invoke_shell()
chan.get_pty()

commandstringlist = \
    ['/local/mnt/workspace/LA_host_builds/AU_LINUX_ANDROID_LA.BF64.1.2.1_RB2.05.01.01.081.031_msm8992',
     'cd frameworks/base',
     'git fetch ssh://cdit@review-android.company.com:29418/platform/frameworks/base refs/changes/21/1260821/2 && git cherry-pick FETCH_HEAD']
for cmd_val in commandstringlist:
    #chan.exec_command(cmd_val)
    chan.send(cmd_val)
    print(chan.recv(1024))
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "ssh_test.py", line 21, in <module>
    chan.get_pty()
  File "/usr/local/lib/python2.7/dist-packages/paramiko/channel.py", line 60, …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

8
推荐指数
1
解决办法
1636
查看次数

Paramiko 上的 exec_command 和使用 invoke_shell() 发送有什么区别?

那么在Paramiko上SSHClient.exec_command()发送和发送有什么区别SSHClient.invoke_shell

我可以使用exec_commandMikroTik 路由器设备发送和执行命令,但无法使用send( invoke_shell())执行它。

另一方面,我可以向Cisco 设备发送和执行命令send( invoke_shell()),但不能使用exec_command.

我的意思是配置命令,如路由(ip route xxx xxx)或make vlan或添加ip地址等。

python ssh cisco paramiko

7
推荐指数
1
解决办法
9005
查看次数

标签 统计

paramiko ×2

python ×2

ssh ×2

cisco ×1