ssh -tt에서 돌아 오면 Git bash에 더 이상 입력 할 수 없습니다.


-1

대화 형 환경에서 원격 셸에서 명령을 실행하여 원격으로로드하도록했습니다. .bash_profile 먼저 명령을 실행하기 전에

위대한 작품 :

  • echo "command" | ssh user@remote_host [1]

하지만 오류가 발생합니다.

stdin은 터미널이 아니기 때문에 의사 터미널은 할당되지 않습니다.

위의 명령이 내 목적에 잘 작동하기 때문에 이것이 문제인지는 모르겠지만 여전히 해결책을 모색하여 찾았습니다.

그것들을 합치면 얻을 수 있습니다. echo "command" | ssh -tt user@remote_host 위대한 작품.

그러나 Git bash에서 이상한 이유로 명령을 실행하지 못하고 돌아 왔는데 더 이상 입력 할 수 없습니다. Cygwin에서 위의 코드를 테스트 해 보았습니다.이 문제는 Git bash에서만 발생합니다.

나는 타이핑을 시도했다. exit 그 경우에도 원격 쉘에서 보이지 않게 붙어 있지만 아무 것도 작동하지 않습니다.

무엇을 할 때 문제가 될지도 모르는 아이디어 ssh -tt Git bash에서?

답변:


2

"의사 단말기가 할당되지 않음"메시지는 단지 정보 용입니다. 실행중인 명령에 터미널이 필요하지 않은 경우에는 다음 명령을 사용하여 ssh를 실행하는 것이 좋습니다. -T 옵션을 사용하여 PTY 할당을 비활성화하고 메시지를 닫습니다.

어떤 이유로 TTY가 이상한 상태로 남아있는 것 같습니다. 달리는 stty sane 터미널을 사용 가능한 상태로 재설정해야합니다. 나는 당신이 타이핑 할 수 없다고 말한 것을 알고 있습니다,하지만 당신은 이것을 시도 할 수 있습니다 :

  1. Ctrl-S / Ctrl-Q 일시 중지를 취소하려면 Control-Q를 입력하십시오 (즉, "Control"키를 누르고 "Q"를 누르십시오).
  2. Control-J를 입력하십시오. 이것은 쉘이 새로운 명령 행을 읽을 준비가되어 있는지 확인하기위한 문자 그대로의 개행 문자입니다.
  3. "stty sane"을 입력하고 Control-J를 다시 누르십시오. 입력 한 내용이 화면에 나타나지 않아도 사용해보십시오.

그래도 작동하지 않는다면, 핵 옵션은 다른 터미널에서 달라 붙어있는 TTY에 "stty sane"을 실행하는 것입니다.

  1. 다른 터미널 창을 엽니 다.
  2. "ps"를 사용하여 고정 된 세션이 어떤 PTY에 있는지 파악하십시오.
  3. 운영 stty sane 입력은 PTY에서 재전송됩니다.

예를 들어 Linux의 경우 :

$ ps -fu jdoe
...
jdoe   2083  2080  0 22:17 pts/0    00:00:00 /bin/bash  <-- TTY is "/dev/pts/0"
$ stty sane < /dev/pts/0

이것에 너무 감사드립니다. 나는이 괴괴 망측 한 국가로 들어가고 있었다. git add -i. 무슨 일이 벌어지고 있는지 전혀 몰랐습니다.
leesio
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.