백그라운드에서 SSH를 실행할 때 쉘이 키 입력을 잃습니다.

백그라운드에서 SSH를 실행할 때 쉘이 키 입력을 잃습니다.

SSH + Bash + Terminal.app을 사용할 때 이상한 문제가 발생합니다. SSH가 백그라운드에서 실행될 때 쉘은 약 50%의 시간 동안 무작위로 키 입력을 잃는 것 같습니다.

예를 들어, 다음을 실행하면:

$ ssh -N my-tunnel &
$ # typing becomes lossy

그런 다음 "asdf"를 입력하면 문자 "a"와 "f"만 나타날 수 있습니다. 이는 무작위이고 부분적으로 입력 속도와 관련이 있지만 최고 속도로 입력하면 "f"만 나타날 수 있습니다.

이 문제는 셸에만 영향을 미칩니다. 예를 들어 를 실행하면 ssh -N my-tunnel & cat문자가 예상대로 cat에 의해 에코됩니다. 고양이가 죽으면 열쇠는 사라지고 나는 다시 껍데기로 돌아갑니다.

기타 참고사항:

  • 다른 터미널 창은 영향을 받지 않습니다.
  • ssh가 종료되면 쉘은 즉시 정상으로 돌아갑니다.
  • 사용해도 nohup ssh -N my-tunnel &아무것도 바뀌지 않습니다

그래서: 무슨 일이에요? 터미널을 파괴하지 않고 백그라운드에서 SSH를 실행할 수 있는 방법이 있습니까?

답변1

ssh가 터미널에서 데이터를 읽지 못하도록 -n하려면 Except를 사용해야 합니다 .-N

답변2

이는 정상적인 동작입니다. ssh터미널에 연결되어 있는 동안에는 백그라운드에서 실행하지 마세요. 더 이상 필요하지 않을 때(예: 비밀번호) 터미널을 백그라운드에 두려면 다음을 -f사용하는 대신 이 옵션을 사용하세요 &.

ssh -fN my-tunnel

관련 정보