Alasannya bisa beragam, tentu saja.
Jawaban yang paling jelas adalah bahwa, karena satu dan lain alasan, Anda tidak dapat dikonfirmasi oleh sistem jarak jauh. Namun, karena Anda mengeluarkan izin direktori pada sistem jarak jauh, saya menganggap Anda memiliki hak dan kemampuan untuk mengaksesnya dengan beberapa cara (tapi mungkin tidak dengan ssh).
Jadi, hal pertama yang harus dilakukan adalah ssh ke mesin dan pastikan Anda benar-benar dapat menulis ke lokasi itu (yang mungkin sudah Anda coba):
ssh root@remote_host
cd /var/www/html/test/
touch scratch
Jika Anda dapat melihat awal file kosong, maka Anda tahu Anda bisa menulis.
Andaikata Anda dapat dengan benar mengakses sistem tetapi hal di atas tidak berfungsi, ada kemungkinan juga tidak ada hak akses tulis pada direktori. Salah satu contohnya adalah jika direktori pada mesin jarak jauh berada dalam sistem file yang dipasang dari jenis tertentu, misalnya NTFS (yang tidak akan memberi Anda mode tipe UNIX yang dapat diandalkan), dan kernel menetapkannya untuk hanya-baca karena tidak dapat dipasang melalui sekering untuk memberikan izin menulis. Anda perlu memeriksa lebih hati-hati pada pengaturan lokal, tetapi ini akan menjadi pengaturan yang sangat tidak biasa kecuali itu baru (atau dirancang seperti itu).
Men-debug sistem dari sini akan sulit bagi saya, jadi saya hanya akan memberi Anda metode alternatif untuk mencoba. Jika Anda dapat mengakses sistem melalui ssh dan menulis file dari dalam sistem, maka cara untuk melakukannya adalah dengan melakukan sebaliknya, jika komputer lokal Anda tidak berada di belakang firewall, dll.
Anda dapat dengan mudah menemukan IP komputer yang Anda gunakan tanpa harus pindah ke terminal lain. Mari kita menjadikannya sebagai variabel lingkungan untuk kesederhanaan:
export IP="`echo $SSH_CLIENT | awk '{print $1}'`"
Saya biasanya menyertakan baris ini, misalnya, ~ / .bashrc karena saya merasa berguna.
Bagaimanapun, dalam hal apapun
scp user@$IP:/var/www/html/file.php /var/www/html/test/
Tentu saja, jika Anda ingin menjalankan program untuk melakukan pembaruan ini secara otomatis di mesin lokal, ini belum akan menyelesaikan masalah Anda! Ada beberapa cara untuk mengatasinya dengan memanggil perintah melalui SSH (jadi Anda akan memanggil scp via ssh, yang tampaknya kontra-intuitif); namun, agar sepenuhnya otomatis Anda harus mengatur kunci ssh, dan tidak membuat kata sandi untuk kunci tersebut. Ini bukan hal yang saya sarankan untuk akses root ke mesin, dan beberapa jenis debug dengan ssh mesin jarak jauh perlu dilakukan yaitu memblokir scp.