Eu tive o mesmo problema. Isso parece ser um bug no php-ssh2 (do repositório do Ubuntu).
Depois de remover o php-ssh2 e instalar uma nova versão com o pecl (pecl install ssh2-1.0), o problema foi resolvido.
Eu enviei um relatório de bug: link
Eu tive meu sistema Ubuntu 15.10 funcionando bem, e as atualizações do Wordpress aconteceram no ssh. Mas quando eu atualizei o Ubuntu para 16.04, a mudança para php7.0 quebrou as atualizações do Wordpress. No começo ele estava solicitando credenciais de login FTP até que eu instalei o php-ssh2 (que avisa que ele é baseado em um snapshot git). Agora, quando tento atualizar um plugin, ele diz
An error occurred while updating WP to Twitter: Unable to locate WordPress Content directory (wp-content).
E em /var/log/apache2/error.log:
[Sun Jun 12 11:01:10.969931 2016] [:error] [pid 5545] [client 192.168.1.11:65278] PHP Warning: file_put_contents(): Unable to open ssh2.sftp://Resource id #81/.maintenance on remote host in /home/blog/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php on line 252, referer: http://xxxx.com/wp-admin/update-core.php?action=do-plugin-upgrade
[Sun Jun 12 11:01:10.970772 2016] [:error] [pid 5545] [client 192.168.1.11:65278] PHP Warning: file_put_contents(ssh2.sftp://Resource id #81/.maintenance): failed to open stream: operation failed in /home/blog/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php on line 252, referer: http://xxxx.com/wp-admin/update-core.php?action=do-plugin-upgrade
Estou perdendo um pacote, um item de configuração ou o quê?
Eu tive o mesmo problema. Isso parece ser um bug no php-ssh2 (do repositório do Ubuntu).
Depois de remover o php-ssh2 e instalar uma nova versão com o pecl (pecl install ssh2-1.0), o problema foi resolvido.
Eu enviei um relatório de bug: link
No meu caso, nenhum dos itens acima funcionou, no entanto, um patch do ralphm no código PHP corrigiu o update-via-ssh2-problem para WordPress no Ubuntu 14.04 e no Ubuntu 16.04 para mim:
--- a/wp-admin/includes/class-wp-filesystem-ssh2.php
+++ b/wp-admin/includes/class-wp-filesystem-ssh2.php
@@ -185,7 +185,7 @@
if ( '/' === $path ) {
$path = '/./';
}
- return 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $path, '/' );
+ return 'ssh2.sftp://' . intval($this->sftp_link) . '/' . ltrim( $path, '/' );
}
/**
Não se esqueça de reaplicar este patch após a atualização até que uma correção final chegue à versão do WordPress.
No meu caso, instalar a versão 1.1.2 lib ajudou ...
pecl install ssh2-1.1.2