J.W*_*ang 9 python ssh switching paramiko python-2.7
我打算使用paramiko在远程主机上运行几个命令,但运行命令后ssh会话关闭.
下面列出的代码:
from paramiko import SSHClient
import paramiko
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, 22, user, passwd, timeout=3)
stdin, stdout, stderr = ssh.exec_command('uname -a')
Run Code Online (Sandbox Code Playgroud)
那么有什么方法可以阻止ssh会话结束?或帕拉米科的任何替代品?
更新:当连接到Linux服务器时,
我能够继续调用exec_command我的Macbook,但是exec_command当连接到交换机并升级时,ssh会话在Linux服务器上自动关闭
SSHException: paramiko.ssh_exception.SSHException: SSH session not active
>>> print ssh.get_transport()
>>> <paramiko.Transport at 0xf00216d0L (unconnected)>
>>> print ssh.get_transport().is_active()
>>> False
>>> print ssh.get_transport().is_authenticated()
>>> False
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以让paramiko ssh会话始终保持活动状态?
paramiko调试模式信息返回如下:
启动线程(客户端模式):0x2657e10L
连接(版本1.99,客户端Comware-5.20)
kex algos:[u'diffie-hellman-group-exchange-sha1',u'diffie-hellman-group14-sha1',u'diffie- hellman-group1-sha1']服务器密钥:[u'ssh-rsa']客户端加密:[u'aes128-cbc',u'3des-cbc',u'des-cbc']服务器加密:[u'aes128 -cbc',u'3des-cbc',u'des-cbc']客户端mac:[u'hmac-sha1',u'hmac-sha1-96',u'hmac-md5',u'hmac-md5 -96']服务器mac:[u'hmac-sha1',u'hmac-sha1-96',u'hmac-md5',u'hmac-md5-96']客户端压缩:[u'none']服务器压缩:[u'none']客户端lang:[u'']服务器lang:[u''] kex跟随?False
Ciphers同意:local = aes128-cbc,remote = aes128-cbc
using kex diffie-hellman-group14- SHA1; 服务器密钥类型ssh-rsa; 密码:本地aes128-cbc,远程aes128-cbc; mac:local hmac-sha1,remote hmac-sha1; 压缩:本地无,远程无
切换到新密钥...
userauth可以
认证(密码)成功!
[chan 0]最大数据包:32768字节
[chan 1]最大数据包:32768字节
[chan 0]最大数据包输出:32496字节
Secsh通道0打开.
Secsh channel 2 open FAILED:
资源不足:资源不足
[chan 0] Sesch channel 0 request ok
[chan 0] EOF sent(0)
我看到你正在使用timeout我看到您在连接调用中
ssh.connect(host, 22, user, passwd, timeout=3)\nRun Code Online (Sandbox Code Playgroud)\n\n从文档中:
\n\n\n\n\ntimeout (float) \xe2\x80\x93 TCP 连接的可选超时(以秒为单位)
\n
在我的一个脚本中,我只是这样做:
\n\nssh = paramiko.SSHClient()\nssh.connect(host, username=settings.user)\nRun Code Online (Sandbox Code Playgroud)\n\n这会保持连接打开,直到我打电话
\n\nssh.close()\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12425 次 |
| 最近记录: |