scp mengembalikan kesalahan "tak terduga <newline>"

11

Saya mencoba scpfile dari server ke mesin lokal saya, tetapi ini memberi saya kesalahan ini:

protocol error: unexpected <newline>

Ini sintaks saya:

scp user@server:/path/to/file .

Itu tidak bekerja di server ini, tetapi kemudian saya mencoba perintah yang sama di server saya yang lain, jadi saya hanya dapat berasumsi bahwa itu adalah sesuatu yang salah dengan server saya dan bukan sintaks dari scpperintah tersebut.

Ada ide?

srchulo
sumber
Silakan posting Anda ~/.bashrcdi server.
quanta
Terima kasih atas bantuan kuanta. Saya mengedit .bashrc saya sebelum melihat posting Anda. Masalahnya adalah bahwa saya memiliki pernyataan gema di dalamnya. Terima kasih untuk bantuannya!
srchulo
@Miles, saya mencoba tetapi saya harus menunggu 8 jam karena saya memiliki reputasi kurang dari 100. Saya akan mempostingnya sebagai jawaban ketika waktu sudah habis.
srchulo
FYI, saya mengalami masalah ini dan ... <sheepish> perintah scp saya salah </sheepish>. Jadi, bisa jadi itu saja.
ognockocaten

Jawaban:

19

Salah satu skrip login Anda (.bashrc / .cshrc / etc.) Sedang mengeluarkan data ke terminal saat seharusnya tidak. Hal ini menyebabkan kesalahan scp ketika terhubung dan bersiap-siap untuk menyalin karena mulai menerima data tambahan yang tidak diharapkan. Hapus output yang dihasilkan di sini.

Anda dapat memeriksa apakah terminal Anda interaktif dan hanya menghasilkan teks dengan menggunakan kode berikut dalam bashrc. Sesuatu yang setara juga ada untuk shell lainnya:

if shopt -q login_shell; then
    [any code that outputs text here]
fi
Andrew Case
sumber
2

Menemukan solusinya. File .bashrc dan .bash_logout saya disetel untuk menyuarakan informasi kepada saya setiap kali saya masuk / keluar. Rupanya baris baru yang digaungkan itu memberikan beberapa masalah kepada scp. Saya berkomentar pernyataan gema saya dan itu berhasil!

srchulo
sumber
-1

Saya punya masalah serupa. Alasannya persis seperti ini: Saya memiliki perintah "echo" some text "" di .bashrc saya untuk mencetak status proxy. Dan "echo" some text "" ini menyebabkan scp gagal. Jadi dengan menghapus "echo" di file .bashrc, saya bisa mentransfer file menggunakan scp.

evinhas
sumber
1
Ini kedengarannya tidak berbeda dari dua jawaban lainnya yang diposting tujuh tahun lalu.
kasperd