En Debian, en el que se basa Ubuntu, el usuario de www-data tiene / bin / sh como shell predeterminado. Para habilitar SFTP, puede crear /var/www/.ssh/authorized_keys
con su clave pública. Los permisos en /var/www/.ssh
deberían ser 700 y los permisos en el archivo autorizado_claves deberían ser 600. Deberá agregar lo siguiente a su configuración http para prohibir el acceso a este directorio.
<Directory /var/www/.ssh>
Order Deny,Allow
Deny from all
</Directory>
Puede verificar la configuración de los usuarios de www-data (directorio de inicio, shell, etc.) usando getent passwd www-data
.
Asegúrese de que su sshd_config lo tenga Subsystem sftp /usr/lib/openssh/sftp-server
, y probablemente también quiera configurarlo PasswordAuthentication no
.
Iniciar sesión como www-data para scp es una pérdida de tiempo.
Para el comando scp por qué no lo usa
ssh2_scp_send
para transferir archivos, es simple y no necesita agregar-ssh o crear una clave pública para el usuario www-datapor ejemplo
ssh2_scp_send($connection, '/directory/filename', '/remotedirectory/filename', 0644);
Deberia trabajar
fuente