cyberduck and filezilla ssh works but sftp illegal packet length

 The number … represents the first four bytes read from the server. If your login scripts are printing words, this will be the first four characters cast into a number, and not an SFTP message at all.

To fix the problem find out what command in your login script prints text. Once you find it move the command to the proper interactive script, or remove it entirely. The scripts are usually hidden (their name starts with dot) and are located in your home directory on the server. Typically you will need to move the commands from .bashrc script to .bash_profile.

There are other possible sources of the message in addition to the profile script – some SSH servers print messages if they are unable to start the SFTP server, or encounter a fatal error. You should contact your server administrator. 


mv .bashrc .bash_profile

source .bash_profile

try reconnecting with sftp client