
scp
リモートホスト(実際にはローカルで実行されている仮想マシンですが重要ではありません)の単純なファイルは、エラーメッセージなしで失敗しますが、必要なファイルはコピーされていないようです。
scp myuser@myhost:~/.bashrc ~/.bashrc.ubuntu
見せるのが正しい
================================================================================
私の考えでは、これはTelnetの挨拶に表示される最初の行なので、奇妙だと思います。
================================================================================
Welcome to <Ubuntu 12.04.2 LTS>
You are <myuser> logged into <hostname> (my_ipaddress)
Today is <Wed Aug 28 16:48:49 EDT 2013>
================================================================================
.bashrc
リモコンのグリーティングを定義する内容は次のとおりです。
1 if [ -f ~/.bash_aliases ]; then
2 . ~/.bash_aliases
3 fi
4
5
6 export PS1='\w@\t>'
7
8 set -o vi
9
10 printf %80s |tr " " "="
11 echo
12
13 echo "Welcome to <"`lsb_release -d | sed 's/Description\:\s*//'`">"
14
15 export IPADDR=`hostname -I`
16
17 echo "You are <"$LOGNAME"> logged into <"$HOSTNAME"> ("$IPADDR")"
18
19 echo "Today is <"`date`">"
20
21
22 printf %80s |tr " " "="
23 echo
リモート.bashrcから9未満のすべてのエントリを削除すると、scpは成功しました。
この奇妙な現象を説明できる人はいますか?ローカルホストはでMac OS Mountain Lion
、リモート(VM)はですUbuntu 12.04
。
答え1
助ける人このスレッド、挨拶の特殊文字が問題なので、インタラクティブモードで.bashrc
ない限り返す必要があると思います。だから私はRemote.bashrcの冒頭に以下を追加しました。
# If not running interactively, don't do anything
if [[ $- != *i* ]]; then return; fi
これにより問題が解決し、使用できました。scp
答え2
はい、リモートシェルがsshと混同する場合、scpは明確なssh接続に依存するため失敗します。詳細な説明は次のとおりです。
https://blogs.oracle.com/janp/entry/how_the_scp_protocol_works