An already existing file will NOT be overwritten.
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
"It is an error if there already exists a file with the name specified by newpath."(PECL ssh2 >= 0.9.0)
ssh2_sftp_rename — Переименовывает файл
Переименовывает файл на сервере.
sftpРесурс SSH2 SFTP, открытый с помощью ssh2_sftp().
fromИсходный файл.
to
       Новое имя, которое заменит from.
      
   Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
  
Пример #1 Переименовывание файла
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>An already existing file will NOT be overwritten.
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
"It is an error if there already exists a file with the name specified by newpath."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);
?>