scpは「予期しない<newline>」エラーを返します


11

scpサーバーからローカルマシンにファイルを送信しようとしていますが、次のエラーが表示されます。

protocol error: unexpected <newline>

これは私の構文です:

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

このサーバーでは機能しませんでしたが、他のサーバーで同じコマンドを試したので、scpコマンドの構文ではなく、サーバーに問題があると推測できます。

何か案は?


~/.bashrcサーバーに投稿してください。
クォンタ

ヘルプクォンタムをありがとう。あなたの投稿を見る直前に.bashrcを編集しました。問題は、その中にechoステートメントがあったことです。助けてくれてありがとう!
srchulo

@Miles、私は試してみましたが、私は100未満の評判があるので8時間待たなければなりません。その時間になったら答えとしてそれを投稿します。
srchulo

参考までに、私はこの問題に遭遇しました... <sheepish>私のscpコマンドが間違っていました</ sheepish>。だから、それだけかもしれません。
ognockocaten

回答:


19

ログインスクリプト(.bashrc / .cshrc / etc。)の1つが、あるべきではないときに端末にデータを出力しています。これにより、予期しない余分なデータの受信を開始し、scpが接続してコピーの準備をしているときにエラーが発生します。ここで生成された出力を削除します。

bashrcで次のコードを使用して、ターミナルが対話型であり、テキストのみを出力するかどうかを確認できます。他のシェルにも同等のものが存在します。

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

2

ソリューションを見つけました。.bashrcファイルと.bash_logoutは、ログイン/ログアウトするたびに情報をエコーアウトするように設定されていました。エコーされた新しい行がscpにいくつかの問題を与えていたようです。私はエコーステートメントをコメントアウトしました、そしてそれはトリックをしました!


-1

同様の問題がありました。その理由はまさにこれでした。プロキシのステータスを出力するための.bashrcに "echo" some text ""コマンドがあります。そして、この「echo "some text" "はscpを失敗させていました。.bashrcファイルの「エコー」を削除すると、scpを使用してファイルが転送されます。


1
これは、7年前に投稿された他の2つの回答と何ら変わりはありません。
カスペルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.