"Couldn't get handle" failure SFTP error happens While performing tasks with SFTP. This issue can occur as a result of permission problems.
Here at Ibmi Media, as part of our Server management Services, we regularly help our Customers to fix SFTP errors.
SFTP users at times receive the "Couldn't get handle: Permission denied" failure message while performing tasks.
Following is an example where this typical error is seen:
computer:~ user$ sftp test2@172.16.16.121
Connecting to 172.16.16.121...
test2@172.16.16.121's password:
sftp> ls
Couldn't get handle: Permission denied
sftp> cd download
Couldn't canonicalise: Permission denied
sftp> put test.txt
Uploading test.txt to /test.txt
Couldn't get handle: Permission denied
The get handle error is returned by the server to the client since the server is unable to return a valid filehandle for writing due to a lack of permission to either the directory.
Following are some of the main causes for this error:
1. FTP user does not have enough permission
One of the most common reasons for this error is that the user with which we are trying to connect does not have enough permission to access the folder.
To fix this we need to ensure that the sftp user has write access to the directory.
For wordpress sites the prefered permission for the files is 664 . All folders should be 775 . wp-config. php should be 660 .
If the users have list\read access they would be able to change the directory. However, they will be unable to write to the directory.
So we need to initially check the permission of the files and folders by connecting through SSH and changing it through chmod and chown commands:
$ chmod -R /home/user_name
2. File that we are trying to upload already exist in the server
This error may also occur when we try to upload multiple files to the server at the same time. If the server already has a file with the same filename as the one we try to upload, it may show this error.
We can try to upload a single file and see if there is a file that already exists on the server that is not allowing the file to be rewritten.
3. Length of the file name
When the file name is too long there is a possibility for this error to occur. A user attempting to put a file name/BatchID greater than 64 characters can trigger this error.
In this case, we will need to rename the file with a shorter filename
4. Selinux policy
If we have Selinux is enabled we may end up with this error.
We can try disabling it temporarily with:
setenforce 0
This article covers methods to fix the "Couldn't get handle" failure SFTP error for our customers. The problem is with upload permissions to the remote directory. Check that you have appropriate write permissions for the remote directory.