Paramiko SSH连接超时的最大值?

时间:2014-08-12 11:38:05

标签: python ssh timeout paramiko

根据目前的经验,最大Paramiko SSHClient超时值约为20秒。是否有可能将其设置为60秒以上?

此连接设置让我在20秒后超时,即使它设置为60秒:

self.ssh = paramiko.SSHClient()
self.ssh.connect(self.cfg.ip, port=self.cfg.port, username=self.cfg.user, password=self.cfg.password, timeout=60)

1 个答案:

答案 0 :(得分:2)

我认为你必须在内核级别设置它。 Paramiko通过socket.settimeout()设置超时,这通过操作系统(我不确定,但你的情况似乎如此)。 Linux的超时设置为20秒(read this)。在同一个链接中,他们解释了如何增加套接字超时:

  

我建议您将其设置为6,7或最多8的值.6提供有效的连接超时上限约45秒,7提供约90秒,8提供约190秒。

  # cat /proc/sys/net/ipv4/tcp_syn_retries 
  5
  # echo 6 > /proc/sys/net/ipv4/tcp_syn_retries 
     

或者使用sysctl命令:

  # sysctl net.ipv4.tcp_syn_retries
  net.ipv4.tcp_syn_retries = 5
  # sysctl -w net.ipv4.tcp_syn_retries=6
  net.ipv4.tcp_syn_retries = 6
     

要使此值重新启动,请将其添加到/etc/sysctl.conf

  net.ipv4.tcp_syn_retries = 6