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