No Debian, no qual o Ubuntu é baseado, o usuário www-data possui / bin / sh como shell padrão. Para habilitar o SFTP, você pode criar /var/www/.ssh/authorized_keys
com você uma chave pública. As permissões /var/www/.ssh
devem ser 700 e as permissões no arquivo allowed_keys devem ser 600. Você deve adicionar o seguinte à sua configuração http para proibir o acesso a esse diretório.
<Directory /var/www/.ssh>
Order Deny,Allow
Deny from all
</Directory>
Você pode verificar as configurações dos usuários do www-data (dir home, shell, etc) usando getent passwd www-data
.
Verifique se o seu sshd_config possui Subsystem sftp /usr/lib/openssh/sftp-server
e provavelmente você também deseja definir PasswordAuthentication no
.
Efetuar login como www-data para scp é perda de tempo.
Para o comando scp, por que você não usa
ssh2_scp_send
para transferir arquivos, é simples e não precisa adicionar-ssh ou criar uma chave pública para o usuário www-datapor exemplo
ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);
Deveria trabalhar
fonte