這個錯誤出現在伺服器接受連線但是ssh守護程序沒有及時響應的情況(預設是15s).
要解決這個問題, 需要將paramiko的響應等待時間調長。
transport.py中def__init__()初始化函式中:
# how long (seconds) to wait for the ssh banner
self.banner_timeout = 15
client.py中
defconnect(
self,
hostname,
port=ssh_port,
username=none,
password=none,
pkey=none,
key_filename=none,
timeout=none,
allow_agent=true,
look_for_keys=true,
compress=false,
sock=none,
gss_auth=false,
gss_kex=false,
gss_deleg_creds=true,
gss_host=none,
banner_timeout=none,
auth_timeout=none,
gss_trust_dns=true,
passphrase=none,
disabled_algorithms=none,
):t = self._transport = transport(
sock,
gss_kex=gss_kex,
gss_deleg_creds=gss_deleg_creds,
disabled_algorithms=disabled_algorithms,
)ifbanner_timeoutis not none:
t.banner_timeout = banner_timeout
解決方案
ssh = paramiko.sshclient() #建立乙個ssh物件
ssh.set_missing_host_key_policy(paramiko.autoaddpolicy()) #選擇yes,接受key
ssh.connect(ip, int(port), username, password, banner_timeout=300,timeout=5) #連線伺服器,加上
banner_timeout引數
Python Paramiko模組的使用
windows下有很多非常好的ssh客戶端,比如putty。在python的世界裡,你可以使用原始套接字和一些加密函式建立自己的ssh客戶端或服務端,但如果有現成的模組,為什麼還要自己實現呢。使用paramiko庫中的pycrypto能夠讓你輕鬆使用ssh2協議。paramiko的安裝方法網上有很多...
Python paramiko實現跳轉控制
通過ssh 的proxycommand,建立關係,用paramiko模組,呼叫proxycommand方法 一 通過一台跳板機免密 a主機 b跳板機 c主機 做好a免密登入b,b免密登入c a主機 ssh下新增檔案b private,內容為b的私鑰 a主機 ssh下增加config檔案,內容為 ho...
python paramiko 遠端操作linux
遠端執行linux命令等 paramiko import traceback import paramiko as param,time,re from scp import scpclient ssh param.sshclient ssh.set missing host key policy ...