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

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

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

채널 0에서 실행 요청이 실패했습니다."

그러나 SSH를 사용하면 문제 없이 머신에 접속할 수 있습니다. 도움이 된다면 Cygwin에서 SCP 기능을 사용하고 있습니다.

온라인 검색에서 찾은 것은 ".bashrc" 파일에 대해 이야기했지만 내가 찾은 유일한 파일은 "bash.bashrc"입니다.

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

scp /filelocation/file user@hostname:/folderlocation

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

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

답변1

Synology NAS에 일부 파일을 보내려고 할 때 이런 일이 발생했습니다.

달리기가 scp -O효과가 있었습니다.

-O옵션은 SFTP 프로토콜 대신 파일 전송에 레거시 SCP 프로토콜을 사용합니다.

답변2

.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

답변3

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

하지만 대화형 셸을 테스트하는 몇 가지 bash 내장 방법이 있습니다.고급 bash 스크립팅 가이드참조,서버 결함참조.

내가 가장 자주 본 것은 출력을 언제 수행할지 $PS1을 테스트하는 것입니다.

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

답변4

모든 클라이언트(또는 클라이언트 계정)가 ssh를 사용하여 로그인 스크립트를 조작하는 것을 지원하는 것은 아니므로 try/use에 대한 유효한 대안은 scp 대신 sftp입니다.

관련 정보