scpは意味不明なメッセージを出力し失敗する

scpは意味不明なメッセージを出力し失敗する

SSH は次のコマンドで完全に動作します:

$ ssh user@$THE_IP_ADDRESS

しかし、scpを試みると、まったく意味不明な出力が返されます

$ scp ~/file user@$THE_IP_ADDRESS:~/file
\033[?25l\033[?7l\033[0m\033[31m\033[1m            .-/+oossssoo+/-.

コマンドは失敗します。このメッセージはどういう意味ですか? ファイルをコピーできないのはなぜですか?

クライアントは次の通りです:

Darwin MacBook-Pro-4.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

サーバーは次のようになります:

Linux cortex-deus 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

答え1

結局、私が.bashrc壊してしまった。私の.bashrc電話ネオフェッチログイン時にスタイル設定された ASCII アートを印刷します。これは.-/+oossssoo+/-.ASCII アートの一部で、他の部分は色などのエスケープ コードです。ログイン時に何も印刷しないように修正しました。

if [[ $- =~ "i" ]]編集: ただし、ログイン時に ASCII アートなどの派手なものをエコーする必要がある場合は、セッションが対話型であるかどうかを確認するコマンドを保護できます。

答え2

私も同じ問題に遭遇しました。この問題はターミナル セッションの開始時に neofetch 呼び出しが原因となっています。.bashrc で次のように修正しました:

if [[ $- != *i* ]]; then
    return;
else
    if [ -x /usr/bin/neofetch ]; then
        neofetch
    fi
fi

関連情報