한 컴퓨터에서 다른 컴퓨터로 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입니다.