サーバーからローカルマシンにファイルをscp
しようとしていますが、次のエラーが発生します。
protocol error: unexpected <newline>
これは私の構文です:
scp user@server:/path/to/file .
このサーバーでは機能しませんでしたが、他のサーバーで同じコマンドを試したため、scp
コマンドの構文ではなく、サーバーに問題があるとしか想定できません。
何か案は?
ログインスクリプト(.bashrc/.cshrc/etc。)の1つが、ターミナルに出力すべきでないときにデータを出力しています。これは、予期しない余分なデータの受信を開始するため、接続してコピーの準備をするときにscpでエラーが発生する原因になります。ここで生成された出力を削除します。
端末がインタラクティブで、テキストのみを出力するかどうかを確認するには、bashrcで次のコードを使用します。他のシェルにも同等のものが存在します。
if shopt -q login_Shell; then
[any code that outputs text here]
fi
解決策を見つけました。 .bashrcファイルと.bash_logoutは、ログイン/ログアウトするたびに情報をエコーするように設定されていました。どうやらそれは新しいラインをエコーしたscpにいくつかの問題を与えていた。私は私のエコーステートメントをコメントアウトしました、そしてそれはトリックをしました!