파일 전송 중 SSH SCP 오류 메시지: "Stdin: not a tty"

파일 전송 중 SSH SCP 오류 메시지: "Stdin: not a tty"

저는 Macbook SSH 터미널을 사용하고 RSA 키 쌍을 생성하고 id_rsa.pub승인된 권한으로 원격으로 업로드하고 있습니다. 원격 Apache 웹 서버에 연결할 수 있습니다. 문제 없이 웹 서버에서 파일을 생성, 열기, 이동, 수정 및 예비 검사 관리할 수 있으며 오류 메시지도 생성되지 않습니다.

scp놀랍게도 내 데스크톱의 폴더나 문서를 원격 서버로 전송할 수 없습니다 . 또한 scp원격 서버의 폴더나 문서를 데스크탑으로 전송할 수 없습니다 . 오류 메시지가 나타날 때마다:

표준 입력: tty가 아님

원격 웹 서버와 주고받는 명령은 scp절대 또는 상대 파일 위치 참조와 함께 작동하지 않습니다.

내 표준 구문은 다음과 같습니다.

로컬호스트에서:

scp -rp ~/Desktop/foldername [email protected]:~/public_html

원격 호스트에서:

scp -rp [email protected]:~/public_html/foldername ~/Desktop/

오류 메시지에 문제가 있는 것 같습니다 stdin: is not a tty.

어떻게 되어가나요?

이 오류로 인해 파일 전송이 차단되면 어떻게 해결할 수 있나요 stdin: is not a tty?

답변1

그 이유는 대상 서버의 로그인 스크립트 중 하나가 stty...터미널 특성을 설정하는 데 사용되기 때문입니다. tty가 없으면 명령이 실패합니다. 즉, 를 사용하여 연결할 때입니다 scp.

해결책은 stty대화형 세션이 있을 때만 실행되도록 보호하는 것입니다. 이를 수행하는 방법에는 여러 가지가 있습니다. 다음은 bash/sh 유형 쉘에 대한 몇 가지 예입니다.

못생긴:

stty ... >/dev/null 2>&1

나를 위해 일했습니다 :

test -n "$PS1" && stty ...

존경받는SE의 다른 곳:

# Check for a bash login shell
case $- in
  *i*) stty ... ;;
esac

답변2

이것이 OSX sshd 구현에 중요한지 잘 모르겠지만 일부 시스템에서는 tty가 없으면 ~/ 규칙이 포함된 암시적 홈 디렉터리가 확장되지 않을 수 있으며 예상치 못한 결과가 나타날 수 있습니다. 이것이 확실하지 않다는 것을 알고 있지만 ~/ 구문 대신 전체 경로 이름을 사용해 보십시오.

답변3

내 .bash_profile을 로드하려고 할 때 이런 일이 발생합니다. 나는 추가했다

[ -z "${PS1}" ] && return;

맨 위에는 해결됐네요

관련 정보