web-dev-qa-db-ja.com

scpが「予期しない<改行>」エラーを返す

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

protocol error: unexpected <newline>

これは私の構文です:

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

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

何か案は?

11
srchulo

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

端末がインタラクティブで、テキストのみを出力するかどうかを確認するには、bashrcで次のコードを使用します。他のシェルにも同等のものが存在します。

if shopt -q login_Shell; then
    [any code that outputs text here]
fi
19
Andrew Case

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

2
srchulo