permintaan scp exec gagal di saluran 0

11

Saya mencoba untuk menyimpan file SCP dari satu komputer ke komputer lainnya, tetapi saya dapat

permintaan exec gagal di saluran 0 ".

Namun ketika saya menggunakan SSH, saya bisa masuk ke mesin tanpa masalah. Saya menggunakan fungsi SCP di Cygwin jika itu membantu.

Apa yang saya temukan ketika mencari online berbicara tentang file ".bashrc" namun satu-satunya yang saya temukan adalah "bash.bashrc".

Ini adalah perintah yang saya gunakan:

scp /filelocation/file user@hostname:/folderlocation

Saya juga mencoba dengan alamat IP alih-alih nama host, tetapi saya memiliki hasil yang sama.

Saya memeriksa bahwa situs remote memiliki perintah SCP.

balloffire
sumber

Jawaban:

0

Untuk melihat file .bashrc (dan file lain yang dimulai dengan titik) yang perlu Anda lakukan

ls -a

Solusi sederhana adalah mengubah nama file .profile, .bashrc, .login, .bash_profile sehingga tidak disertakan. Ini dikenal sebagai file startup shell.

Jika scp Anda sekarang berfungsi, jawabannya ada di salah satu file itu.

Pada dasarnya salah satu file startup shell mengirim kembali output dan itu mengacaukan negosiasi ssl berlangsung.

Ini bisa sesederhana mengirim urutan pelarian khusus untuk mengatur judul jendela Anda. Penyebab lain adalah perintah stty.

Anda ingin mengelilingi output ke terminal hanya ketika masuk dengan

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi
lampu sorot
sumber
0

Saya setuju dengan strobelight bahwa kesalahan ini sering berasal dari keluaran dari .bashrc (dan lainnya) file inisialisasi bash.

Ada beberapa cara bash-builtin untuk menguji cangkang interaktif: referensi panduan skrip bash tingkat lanjut , referensi serverfault .

Yang paling sering saya lihat adalah menguji $ PS1 kapan harus melakukan output:

if [ "$PS1" ]; then
    echo "some message"
fi
Neil Katin
sumber