scp
원격 호스트(실제로 로컬에서 실행되는 가상 머신이지만 중요하지 않음)의 간단한 파일은 오류 메시지 없이 실패하지만 필요한 파일이 복사되지 않은 것 같습니다 .
scp myuser@myhost:~/.bashrc ~/.bashrc.ubuntu
보여주는 것이 바로
================================================================================
제 생각에는 이것이 텔넷 인사말에 표시되는 첫 번째 줄이기 때문에 이상하다고 생각합니다.
================================================================================
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