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