For some unknown reason we weren't able to rename the remote file using sftp_rename function. Instead we've used the following code:<?php $connection = ssh2_connect('localhost', 22); ssh2_auth_password($connection, 'username', 'password'); $sftp = ssh2_sftp($connection); $fromSftpUrl = "ssh2.sftp://{$sftp}/{$path_from}"; $toSftpUrl = "ssh2.sftp://{$sftp}/{$path_to}"; $success = rename($fromSftpUrl, $toSftpUrl);?>