Konfigurasikan server Anda untuk menggunakan server sftp internal dengan menambahkan arahan berikut ke /etc/ssh/sshd_config
:
Subsystem sftp internal-sftp
Dengan begitu, shell pengguna tidak akan digunakan untuk meluncurkan program server sftp.
"Pesan yang diterima terlalu lama" berarti klien SFTP Anda menerima data buruk dari server SFTP. Alasan umumnya adalah skrip startup shell di server (.bashrc, .profile, .cshrc, dll.) menghasilkan beberapa keluaran, dan klien SFTP Anda mencoba mengurai keluaran tersebut sebagai pesan SFTP. Anda dapat memeriksanya dengan menjalankan perintah:
ssh [email protected] 'echo hello'
Jika ini menghasilkan keluaran apa pun selain "halo", keluaran tersebut mungkin akan mencegah SFTP atau SCP berfungsi dengan benar.
Seperti dalam jawaban salva, Anda dapat menghindari ini dengan menyetel server SSH untuk menggunakan internal-sftp untuk sesi SFTP. Ini menghindari peluncuran shell Anda untuk sesi SFTP. Ini tidak akan membantu dengan SCP atau dengan program lain seperti git atau rsync yang dijalankan melalui ssh.
Cara lain untuk memperbaikinya adalah melalui perintah startup shell Anda, mencari tahu apa yang menghasilkan output, dan mencegah hal itu terjadi selama sesi SSH non-interaktif. Salah satu tipnya adalah menguji TTY sebelum menjalankan perintah yang menghasilkan output:
if [ -t 1 ]; then
# standard output is a TTY
...
fi