Discussion:
[Fab-user] EOF during negotiation error
Steinmetz, Jean-Philippe
2014-08-02 01:08:22 UTC
Permalink
Hi,

I'm pretty new to Fabric and am trying to write a simple fab utility that
uploads a zip file to a remote machine and unzips it. Unfortunately I am
getting inconsistent errors when I run.

I have tried a couple of different options and get two different errors as
a result. However, in either case if I comment out the put() operation then
everything else works okay. In additional tests it seems I can call run()
as many times as I want, so long as there isn't a put() in the chain.

Test 1:

*def uploadScripts():*
* put('scripts.zip')*
* run("unzip -o scripts.zip -d scripts", shell=True)*

Results in the following out:

*[localhost] Executing task 'uploadScripts'*
*Packing up scripts...*
*Uploading scripts to remote host...*
*[localhost] Login password for 'jpsteinmetz':*
*[localhost] put:
c:\users\jpstei~1\appdata\local\temp\tmpglolrt\scripts.zip ->
/home/jpsteinmetz/scripts.zip*
*Unpacking scripts on remote host...*
*[localhost] run: unzip -o scripts.zip -d scripts*

*Fatal error: run() received nonzero return code 255 while executing!*

*Requested: unzip -o scripts.zip -d scripts*
*Executed: /bin/bash -l -c "unzip -o scripts.zip -d scripts"*

*Aborting.*
*Disconnecting from localhost... done.*

If I add an additional line before the put() operation to remove an
existing scripts.zip on the remote host...

*def uploadScripts():*
* run("rm -f scripts.zip", shell=True)*
* put('scripts.zip')*
* run("unzip -o scripts.zip -d scripts", shell=True)*

Then I get the following error (I've turned on debug logging for additional
information).

*[localhost] Executing task 'uploadScripts'*
*Removing old scripts...*
*[localhost] run: rm -f scripts.zip*
*DEBUG:paramiko.transport:starting thread (client mode): 0x3556e48L*
*INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_6.6.1)*
*DEBUG:paramiko.transport:kex algos:[u'curve25519-***@libssh.org
<u%27curve25519-***@libssh.org>', u'ecdh-sha2-nistp256',
u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521',
u'diffie-hellman-group-exchange-sha256',
u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1',
u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa', u'ssh-dss',
u'ecdsa-sha2-nistp256', u'ssh-ed25519'] client encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-***@openssh.com <u%27aes128-***@openssh.com>',
u'aes256-***@openssh.com <u%27aes256-***@openssh.com>',
u'chacha20-***@openssh.com <u%27chacha20-***@openssh.com>',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes256-cbc', u'arcfour', u'rijndael-***@lysator.liu.se
<u%27rijndael-***@lysator.liu.se>'] server encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-***@openssh.com <u%27aes128-***@openssh.com>',
u'aes256-***@openssh.com <u%27aes256-***@openssh.com>',
u'chacha20-***@openssh.com <u%27chacha20-***@openssh.com>',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes256-cbc', u'arcfour', u'rijndael-***@lysator.liu.se
<u%27rijndael-***@lysator.liu.se>'] client mac:[u'hmac-md5-***@openssh.com
<u%27hmac-md5-***@openssh.com>', u'hmac-sha1-***@openssh.com
<u%27hmac-sha1-***@openssh.com>', u'umac-64-***@openssh.com
<u%27umac-64-***@openssh.com>', u'umac-128-***@openssh.com
<u%27umac-128-***@openssh.com>', u'hmac-sha2-256-***@openssh.com
<u%27hmac-sha2-256-***@openssh.com>', u'hmac-sha2-512-***@openssh.com
<u%27hmac-sha2-512-***@openssh.com>', u'hmac-ripemd160-***@openssh.com
<u%27hmac-ripemd160-***@openssh.com>', u'hmac-sha1-96-***@openssh.com
<u%27hmac-sha1-96-***@openssh.com>', u'hmac-md5-96-***@openssh.com
<u%27hmac-md5-96-***@openssh.com>', u'hmac-md5', u'hmac-sha1',
u'umac-***@openssh.com <u%27umac-***@openssh.com>', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'hmac-sha2-256', u'hmac-sha2-512',
u'hmac-ripemd160', u'hmac-***@openssh.com
<u%27hmac-***@openssh.com>', u'hmac-sha1-96', u'hmac-md5-96'] server
mac:[u'hmac-md5-***@openssh.com <u%27hmac-md5-***@openssh.com>',
u'hmac-sha1-***@openssh.com <u%27hmac-sha1-***@openssh.com>',
u'umac-64-***@openssh.com <u%27umac-64-***@openssh.com>',
u'umac-128-***@openssh.com <u%27umac-128-***@openssh.com>',
u'hmac-sha2-256-***@openssh.com <u%27hmac-sha2-256-***@openssh.com>',
u'hmac-sha2-512-***@openssh.com <u%27hmac-sha2-512-***@openssh.com>',
u'hmac-ripemd160-***@openssh.com <u%27hmac-ripemd160-***@openssh.com>',
u'hmac-sha1-96-***@openssh.com <u%27hmac-sha1-96-***@openssh.com>',
u'hmac-md5-96-***@openssh.com <u%27hmac-md5-96-***@openssh.com>',
u'hmac-md5', u'hmac-sha1', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'hmac-sha2-256', u'hmac-sha2-512',
u'hmac-ripemd160', u'hmac-***@openssh.com
<u%27hmac-***@openssh.com>', u'hmac-sha1-96', u'hmac-md5-96'] client
compress:[u'none', u'***@openssh.com <u%***@openssh.com>'] server
compress:[u'none', u'***@openssh.com <u%***@openssh.com>'] client
lang:[u''] server lang:[u''] kex follows?False*
*DEBUG:paramiko.transport:Ciphers agreed: local=aes128-ctr,
remote=aes128-ctr*
*DEBUG:paramiko.transport:using kex diffie-hellman-group1-sha1; server key
type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local
hmac-s*
*ha1, remote hmac-sha1; compression: local none, remote none*
*DEBUG:paramiko.transport:Switch to new keys ...*
*DEBUG:paramiko.transport:Adding ssh-rsa host key for localhost:
493071a6f3998a5536c903aeb86ab7b8*
*[localhost] Login password for 'jpsteinmetz':*
*DEBUG:paramiko.transport:starting thread (client mode): 0x35f8a90L*
*INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_6.6.1)*
*DEBUG:paramiko.transport:kex algos:[u'curve25519-***@libssh.org
<u%27curve25519-***@libssh.org>', u'ecdh-sha2-nistp256',
u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521',
u'diffie-hellman-group-exchange-sha256',
u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1',
u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa', u'ssh-dss',
u'ecdsa-sha2-nistp256', u'ssh-ed25519'] client encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-***@openssh.com <u%27aes128-***@openssh.com>',
u'aes256-***@openssh.com <u%27aes256-***@openssh.com>',
u'chacha20-***@openssh.com <u%27chacha20-***@openssh.com>',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes256-cbc', u'arcfour', u'rijndael-***@lysator.liu.se
<u%27rijndael-***@lysator.liu.se>'] server encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-***@openssh.com <u%27aes128-***@openssh.com>',
u'aes256-***@openssh.com <u%27aes256-***@openssh.com>',
u'chacha20-***@openssh.com <u%27chacha20-***@openssh.com>',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes256-cbc', u'arcfour', u'rijndael-***@lysator.liu.se
<u%27rijndael-***@lysator.liu.se>'] client mac:[u'hmac-md5-***@openssh.com
<u%27hmac-md5-***@openssh.com>', u'hmac-sha1-***@openssh.com
<u%27hmac-sha1-***@openssh.com>', u'umac-64-***@openssh.com
<u%27umac-64-***@openssh.com>', u'umac-128-***@openssh.com
<u%27umac-128-***@openssh.com>', u'hmac-sha2-256-***@openssh.com
<u%27hmac-sha2-256-***@openssh.com>', u'hmac-sha2-512-***@openssh.com
<u%27hmac-sha2-512-***@openssh.com>', u'hmac-ripemd160-***@openssh.com
<u%27hmac-ripemd160-***@openssh.com>', u'hmac-sha1-96-***@openssh.com
<u%27hmac-sha1-96-***@openssh.com>', u'hmac-md5-96-***@openssh.com
<u%27hmac-md5-96-***@openssh.com>', u'hmac-md5', u'hmac-sha1',
u'umac-***@openssh.com <u%27umac-***@openssh.com>', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'hmac-sha2-256', u'hmac-sha2-512',
u'hmac-ripemd160', u'hmac-***@openssh.com
<u%27hmac-***@openssh.com>', u'hmac-sha1-96', u'hmac-md5-96'] server
mac:[u'hmac-md5-***@openssh.com <u%27hmac-md5-***@openssh.com>',
u'hmac-sha1-***@openssh.com <u%27hmac-sha1-***@openssh.com>',
u'umac-64-***@openssh.com <u%27umac-64-***@openssh.com>',
u'umac-128-***@openssh.com <u%27umac-128-***@openssh.com>',
u'hmac-sha2-256-***@openssh.com <u%27hmac-sha2-256-***@openssh.com>',
u'hmac-sha2-512-***@openssh.com <u%27hmac-sha2-512-***@openssh.com>',
u'hmac-ripemd160-***@openssh.com <u%27hmac-ripemd160-***@openssh.com>',
u'hmac-sha1-96-***@openssh.com <u%27hmac-sha1-96-***@openssh.com>',
u'hmac-md5-96-***@openssh.com <u%27hmac-md5-96-***@openssh.com>',
u'hmac-md5', u'hmac-sha1', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'umac-***@openssh.com
<u%27umac-***@openssh.com>', u'hmac-sha2-256', u'hmac-sha2-512',
u'hmac-ripemd160', u'hmac-***@openssh.com
<u%27hmac-***@openssh.com>', u'hmac-sha1-96', u'hmac-md5-96'] client
compress:[u'none', u'***@openssh.com <u%***@openssh.com>'] server
compress:[u'none', u'***@openssh.com <u%***@openssh.com>'] client
lang:[u''] server lang:[u''] kex follows?False*
*DEBUG:paramiko.transport:Ciphers agreed: local=aes128-ctr,
remote=aes128-ctr*
*DEBUG:paramiko.transport:using kex diffie-hellman-group1-sha1; server key
type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local
hmac-sha1, remote hmac-sha1; compression: local none, remote none*
*DEBUG:paramiko.transport:Switch to new keys ...*
*DEBUG:paramiko.transport:userauth is OK*
*INFO:paramiko.transport:Authentication (password) successful!*
*DEBUG:paramiko.transport:[chan 1] Max packet in: 34816 bytes*
*DEBUG:paramiko.transport:[chan 1] Max packet out: 32768 bytes*
*INFO:paramiko.transport:Secsh channel 1 opened.*
*DEBUG:paramiko.transport:[chan 1] Sesch channel 1 request ok*
*DEBUG:paramiko.transport:[chan 1] Sesch channel 1 request ok*
*DEBUG:paramiko.transport:[chan 1] EOF received (1)*
*DEBUG:paramiko.transport:[chan 1] EOF sent (1)*
*Packing up scripts...*
*Uploading scripts to remote host...*
*DEBUG:paramiko.transport:[chan 2] Max packet in: 34816 bytes*
*DEBUG:paramiko.transport:[chan 2] Max packet out: 32768 bytes*
*INFO:paramiko.transport:Secsh channel 2 opened.*
*DEBUG:paramiko.transport:[chan 2] Sesch channel 2 request ok*
*Traceback (most recent call last):*
*DEBUG:paramiko.transport:[chan 2] EOF received (2)*
* File "C:\Python27\lib\site-packages\fabric\main.py", line 743, in main*
* *args, **kwargs*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 372, in
execute*
* multiprocessing*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 267, in
_execute*
* return task.run(*args, **kwargs)*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 174, in run*
* return self.wrapped(*args, **kwargs)*
* File "D:\tools\python\fabfile.py", line 40, in uploadScripts*
* if (put(os.path.join(tempDir, 'scripts.zip')).succeeded == False):*
* File "C:\Python27\lib\site-packages\fabric\network.py", line 639, in
host_prompting_wrapper*
*DEBUG:paramiko.transport:[chan 2] EOF sent (2)*
* return func(*args, **kwargs)*
* File "C:\Python27\lib\site-packages\fabric\operations.py", line 346, in
put*
* ftp = SFTP(env.host_string)*
* File "C:\Python27\lib\site-packages\fabric\sftp.py", line 30, in
__init__*
* self.ftp = connections[host_string].open_sftp()*
* File "C:\Python27\lib\site-packages\paramiko\client.py", line 345, in
open_sftp*
* return self._transport.open_sftp_client()*
* File "C:\Python27\lib\site-packages\paramiko\transport.py", line 717, in
open_sftp_client*
* return SFTPClient.from_transport(self)*
* File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 114,
in from_transport*
* return cls(chan)*
* File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 98,
in __init__*
* raise SSHException('EOF during negotiation')*
*paramiko.ssh_exception.SSHException: EOF during negotiation*
*Disconnecting from localhost... DEBUG:paramiko.transport:EOF in transport
thread*
*done.*
*DEBUG:paramiko.transport:EOF in transport thread*

I am running Windows 7 with Python 2.7.8 and the following packages:

boto (2.31.1)
ecdsa (0.11)
Fabric (1.9.0)
paramiko (1.14.0)
pip (1.5.6)
pycrypto (2.6)
pywin32 (219)
setuptools (3.8.1)

The SSH server is OpenSSH 6.6.1p1-3 running through cygwin (64-bit). SSH
itself seems to run just fine as I can putty into it without any problems
and can also use psftp to upload the same zip file.

Any insight into why this might be happening is greatly appreciated.

Cheers,

Jean-Philippe Steinmetz
Steinmetz, Jean-Philippe
2014-08-05 16:31:44 UTC
Permalink
Anyone have any thoughts on this? I could really use some assistance. Thank
you.

Jean-Philippe


On Fri, Aug 1, 2014 at 6:08 PM, Steinmetz, Jean-Philippe <
Post by Steinmetz, Jean-Philippe
Hi,
I'm pretty new to Fabric and am trying to write a simple fab utility that
uploads a zip file to a remote machine and unzips it. Unfortunately I am
getting inconsistent errors when I run.
I have tried a couple of different options and get two different errors as
a result. However, in either case if I comment out the put() operation then
everything else works okay. In additional tests it seems I can call run()
as many times as I want, so long as there isn't a put() in the chain.
*def uploadScripts():*
* put('scripts.zip')*
* run("unzip -o scripts.zip -d scripts", shell=True)*
*[localhost] Executing task 'uploadScripts'*
*Packing up scripts...*
*Uploading scripts to remote host...*
*[localhost] Login password for 'jpsteinmetz':*
c:\users\jpstei~1\appdata\local\temp\tmpglolrt\scripts.zip ->
/home/jpsteinmetz/scripts.zip*
*Unpacking scripts on remote host...*
*[localhost] run: unzip -o scripts.zip -d scripts*
*Fatal error: run() received nonzero return code 255 while executing!*
*Requested: unzip -o scripts.zip -d scripts*
*Executed: /bin/bash -l -c "unzip -o scripts.zip -d scripts"*
*Aborting.*
*Disconnecting from localhost... done.*
If I add an additional line before the put() operation to remove an
existing scripts.zip on the remote host...
*def uploadScripts():*
* run("rm -f scripts.zip", shell=True)*
* put('scripts.zip')*
* run("unzip -o scripts.zip -d scripts", shell=True)*
Then I get the following error (I've turned on debug logging for
additional information).
*[localhost] Executing task 'uploadScripts'*
*Removing old scripts...*
*[localhost] run: rm -f scripts.zip*
*DEBUG:paramiko.transport:starting thread (client mode): 0x3556e48L*
*INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_6.6.1)*
u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521',
u'diffie-hellman-group-exchange-sha256',
u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1',
u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa', u'ssh-dss',
u'ecdsa-sha2-nistp256', u'ssh-ed25519'] client encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
lang:[u''] server lang:[u''] kex follows?False*
*DEBUG:paramiko.transport:Ciphers agreed: local=aes128-ctr,
remote=aes128-ctr*
*DEBUG:paramiko.transport:using kex diffie-hellman-group1-sha1; server key
type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local
hmac-s*
*ha1, remote hmac-sha1; compression: local none, remote none*
*DEBUG:paramiko.transport:Switch to new keys ...*
493071a6f3998a5536c903aeb86ab7b8*
*[localhost] Login password for 'jpsteinmetz':*
*DEBUG:paramiko.transport:starting thread (client mode): 0x35f8a90L*
*INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_6.6.1)*
u'ecdh-sha2-nistp384', u'ecdh-sha2-nistp521',
u'diffie-hellman-group-exchange-sha256',
u'diffie-hellman-group-exchange-sha1', u'diffie-hellman-group14-sha1',
u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa', u'ssh-dss',
u'ecdsa-sha2-nistp256', u'ssh-ed25519'] client encrypt:[u'aes128-ctr',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
u'aes192-ctr', u'aes256-ctr', u'arcfour256', u'arcfour128',
u'aes128-cbc', u'3des-cbc', u'blowfish-cbc', u'cast128-cbc', u'aes192-cbc',
lang:[u''] server lang:[u''] kex follows?False*
*DEBUG:paramiko.transport:Ciphers agreed: local=aes128-ctr,
remote=aes128-ctr*
*DEBUG:paramiko.transport:using kex diffie-hellman-group1-sha1; server key
type ssh-rsa; cipher: local aes128-ctr, remote aes128-ctr; mac: local
hmac-sha1, remote hmac-sha1; compression: local none, remote none*
*DEBUG:paramiko.transport:Switch to new keys ...*
*DEBUG:paramiko.transport:userauth is OK*
*INFO:paramiko.transport:Authentication (password) successful!*
*DEBUG:paramiko.transport:[chan 1] Max packet in: 34816 bytes*
*DEBUG:paramiko.transport:[chan 1] Max packet out: 32768 bytes*
*INFO:paramiko.transport:Secsh channel 1 opened.*
*DEBUG:paramiko.transport:[chan 1] Sesch channel 1 request ok*
*DEBUG:paramiko.transport:[chan 1] Sesch channel 1 request ok*
*DEBUG:paramiko.transport:[chan 1] EOF received (1)*
*DEBUG:paramiko.transport:[chan 1] EOF sent (1)*
*Packing up scripts...*
*Uploading scripts to remote host...*
*DEBUG:paramiko.transport:[chan 2] Max packet in: 34816 bytes*
*DEBUG:paramiko.transport:[chan 2] Max packet out: 32768 bytes*
*INFO:paramiko.transport:Secsh channel 2 opened.*
*DEBUG:paramiko.transport:[chan 2] Sesch channel 2 request ok*
*Traceback (most recent call last):*
*DEBUG:paramiko.transport:[chan 2] EOF received (2)*
* File "C:\Python27\lib\site-packages\fabric\main.py", line 743, in main*
* *args, **kwargs*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 372, in
execute*
* multiprocessing*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 267, in
_execute*
* return task.run(*args, **kwargs)*
* File "C:\Python27\lib\site-packages\fabric\tasks.py", line 174, in run*
* return self.wrapped(*args, **kwargs)*
* File "D:\tools\python\fabfile.py", line 40, in uploadScripts*
* if (put(os.path.join(tempDir, 'scripts.zip')).succeeded == False):*
* File "C:\Python27\lib\site-packages\fabric\network.py", line 639, in
host_prompting_wrapper*
*DEBUG:paramiko.transport:[chan 2] EOF sent (2)*
* return func(*args, **kwargs)*
* File "C:\Python27\lib\site-packages\fabric\operations.py", line 346, in
put*
* ftp = SFTP(env.host_string)*
* File "C:\Python27\lib\site-packages\fabric\sftp.py", line 30, in
__init__*
* self.ftp = connections[host_string].open_sftp()*
* File "C:\Python27\lib\site-packages\paramiko\client.py", line 345, in
open_sftp*
* return self._transport.open_sftp_client()*
* File "C:\Python27\lib\site-packages\paramiko\transport.py", line 717,
in open_sftp_client*
* return SFTPClient.from_transport(self)*
* File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 114,
in from_transport*
* return cls(chan)*
* File "C:\Python27\lib\site-packages\paramiko\sftp_client.py", line 98,
in __init__*
* raise SSHException('EOF during negotiation')*
*paramiko.ssh_exception.SSHException: EOF during negotiation*
*Disconnecting from localhost... DEBUG:paramiko.transport:EOF in transport
thread*
*done.*
*DEBUG:paramiko.transport:EOF in transport thread*
boto (2.31.1)
ecdsa (0.11)
Fabric (1.9.0)
paramiko (1.14.0)
pip (1.5.6)
pycrypto (2.6)
pywin32 (219)
setuptools (3.8.1)
The SSH server is OpenSSH 6.6.1p1-3 running through cygwin (64-bit). SSH
itself seems to run just fine as I can putty into it without any problems
and can also use psftp to upload the same zip file.
Any insight into why this might be happening is greatly appreciated.
Cheers,
Jean-Philippe Steinmetz
Loading...