当前位置: 首页 > 知识库问答 >
问题:

Ssh套接字已关闭。想要一个用于Linux的交互式Ssh shell自动化Box

林念
2023-03-14

Ssh套接字已关闭。想要一个用于Linux的交互式Ssh shell自动化Box

    import paramiko

    ssh = paramiko.SSHClient()

    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ##Creating Ssh Session

    ssh.connect("gfr4123408", port=22, username='rstrusr',password='Password')


    stdin,stdout,stderr = ssh.exec_command('symcfg -lockbox reset -ssv')

    #Here it asks for password and i want to write password below

    stdin.write("Password")

    stdin.write('\n')

    stdin.flush()

    output=stdout.readlines()

    print(output)

回溯(最近一次调用last):stdin中第1行的文件“”。将('password')文件“C:\Users\venkar2\AppData\Local\Programs\Python36\lib\site packages\paramiko\File.py”写入write self的第402行_将所有(数据)文件“C:\Users\venkar2\AppData\Local\Programs\Python\Python36\lib\site packages\paramiko\File.py”写入第519行中的“write\u all count=self”_将(数据)文件“C:\Users\venkar2\AppData\Local\Programs\Python36\lib\site packages\paramiko\channel.py”写入第1333行的“write self”。频道sendall(数据)文件“C:\Users\venkar2\AppData\Local\Programs\Python\Python36\lib\site packages\paramiko\channel.py”,第831行,在sendall sent=self中。发送文件“C:\Users\venkar2\AppData\Local\Programs\Python36\lib\site packages\paramiko\channel.py”,第785行,发送返回self_发送(s,m)文件“C:\Users\venkar2\AppData\Local\Programs\Python\Python36\lib\site packages\paramiko\channel.py”,第1169行,在发送套接字中。错误(“套接字已关闭”)错误:套接字已关闭

我如何解决这个问题,因为我必须配置200台设备??

共有2个答案

桓风史
2023-03-14

大多数情况下,此问题与发送两个命令之间的时间有关。我有这个问题。当我在命令之间使用“time.sleep(X)”时,这个问题就消失了。

郑衡
2023-03-14

你会发现两件有用的事情:

>

(stdin, stdout, stderr) = ssh.exec_command("sudo ls", get_pty = True)

将密码放入stdin,并返回一行并刷新以确保密码已送达。这确保了它在发出请求时收到密码(你可以做一些更复杂的事情来检查它是否真的发出了请求……简单地把它扔进去总是不会给我带来问题。)

stdin.write('passwd' + '\n')
stdin.flush()

总的来说,这些应该可以解决您的sudo问题。

 类似资料:
  • 我正在为客户机发送对象到服务器,在服务器端修改该对象,并将其重新发送到客户机。将对象从客户机发送到服务器很好,它工作正常,但当我将对象发送回来时,它给出了异常,Socket关闭。这里是代码。IntString和ParentObj是我要发送对象的类。 服务器类 用于发送和接收对象的Send_recv类。

  • 我有一个java应用程序,它使用一个内部代理服务器来分析web应用程序的http trafic(在浏览器-Prism或Chrome/Chromium中),这实际上是同一个应用程序的一部分。基于trafic分析,它执行了一些操作。 该应用程序在Windows(XP,7和8)中运行良好,我也在Ubuntu和SUSE中使用它没有任何问题。最近,一个新的潜在客户想在CentOs中测试它,但我发现java.

  • 我最近一直在玩套接字,但是我遇到了一个问题…当我从服务器接收数据时,我得到一个“java.net.套接字异常:套接字关闭”异常。我没有在任何地方关闭套接字,事实上,我唯一使用关闭()的地方是扫描仪上从System.in读取文本; 以下是我的代码: 客户: 服务器: 数据包发送者: 客户端接收器: 数据包接收器:

  • 我有一个网站,作为一个远程Git回购从BitBucket.com拉使用一个SSH别名。我可以在服务器上手动启动ssh-agent,但每次通过ssh登录时都必须这样做。 我手动启动ssh-agent: 然后我添加代理: 当我这么做的时候,它就会出现:

  • 因此,我有一个客户机wich连续发送和接收数据消息,wich工作正常,然而,当我关闭/停止客户机时,我会得到以下单行错误: 尽管我试图关闭插座--最终封闭了。现在我的问题是为什么我会收到这个错误,这个行为是否正常,以及如何正确处理这个错误。下面是我的代码:

  • 所以在Java中创建一个服务器端应用。 关于关闭连接,我只是想知道如果在读卡器之前关闭套接字会发生什么。 例如服务器端 围绕套接字中的输入流实例化的bufferedreader会随着套接字的关闭而关闭,还是我手上有潜在的内存泄漏?