Issue with key-exchange
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 9.9k
- Forks
- 2.1k
- PR merge metrics
- No merged PRs in 30d
Description
I believe this is related to https://github.com/paramiko/paramiko/pull/63
When using paramiko to retrieve a file via sftp, we are getting the stack below. The error message is paramiko.SSHException: Key-exchange timed out waiting for key negotiation . This only happens with paramiko; other sftp clients pull the same file fine.
I've tried both paramiko-1.7.7.2-py2.7 and paramiko-1.11.0-py2.7, and both behave the same way.
Depending on the time of day, the request either succeeds (typically early morning), or fails somewhere between 500 meg and one gig of transfer.
Traceback (most recent call last):
File "./tim.py", line 14, in <module>
sftp.get(SourceFileName,TargetFileName)
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_client.py", line 676, in get
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_client.py", line 653, in getfo
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_file.py", line 64, in close
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_file.py", line 85, in _close
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_client.py", line 688, in _request
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp_client.py", line 710, in _async_request
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp.py", line 172, in _send_packet
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/sftp.py", line 136, in _write_all
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/channel.py", line 734, in send
File "build/bdist.solaris-2.10-sun4u.64bit/egg/paramiko/transport.py", line 1442, in _send_user_message
paramiko.SSHException: Key-exchange timed out waiting for key negotiation
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported sftp.get stack trace through paramiko/sftp_client.py, sftp_file.py, sftp.py, channel.py, and transport.py, then reproduce the failure during a large transfer. Read the key-negotiation timeout path and compare behavior across successful and failing transfers. Done means the cause is identified and the reported transfer no longer raises this exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100