채널 0에서 scp exec 요청이 실패했습니다 SSH를 사용하면 아무런 문제없이 컴퓨터를 사용할

한 컴퓨터에서 다른 컴퓨터로 SCP 파일을 보내려고하는데

채널 0에서 exec 요청이 실패했습니다. ”

그러나 SSH를 사용하면 아무런 문제없이 컴퓨터를 사용할 수 있습니다. Cygwin에서 SCP 기능을 사용하면 도움이됩니다.

온라인 검색시 찾은 것은 “.bashrc”파일에 대해 말했지만 “bash.bashrc”는 내가 찾은 유일한 파일입니다.

이것은 내가 사용한 명령입니다.

scp /filelocation/file user@hostname:/folderlocation

호스트 이름 대신 IP 주소로 시도했지만 결과는 같습니다.

원격 사이트에 SCP 명령이 있는지 확인했습니다.



답변

.bashrc 파일 (및 점으로 시작하는 다른 파일)을 보려면 다음을 수행해야합니다.

ls -a

간단한 해결 방법은 포함되지 않도록 .profile, .bashrc, .login, .bash_profile 파일의 이름을 바꾸는 것입니다. 이것을 쉘 시작 파일이라고합니다.

이제 SCP가 작동하면 그 파일 중 하나에 답이 있습니다.

기본적으로 셸 시작 파일 중 하나는 출력을 다시 보내고 있으며 SSL 협상을 방해합니다.

창 제목을 설정하기 위해 특수 이스케이프 시퀀스를 보내는 것만 큼 간단 할 수 있습니다. 또 다른 범인은 stty 명령입니다.

로그인 한 경우에만 터미널로 출력을 둘러싸고 싶습니다

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands
    # or other special escape sequences to terminal
fi

답변

이 오류는 종종 .bashrc (및 기타) bash 초기화 파일의 출력에서 ​​발생한다는 strobelight에 동의 합니다.

대화식 쉘을 테스트하는 bash 내장 방법이 있습니다 : 고급 bash 스크립팅 안내서 참조, serverfault 참조.

내가 가장 자주 본 것은 출력을 할 때 $ PS1을 테스트하는 것입니다.

if [ "$PS1" ]; then
    echo "some message"
fi