HostA(내 Linux 데스크톱)에서 호스트B로 SSH를 통해 연결합니다.
$ ssh hostB -X
$ (nohup xterm &)
$ (nohup xterm &)
$ exit
## i don't get my prompt back
xterm 창이 호스트A에 표시되지만 호스트B로 SSH를 보내는 터미널은 나에게 프롬프트를 반환하지 않습니다.
Ctrl+C를 누르면 프롬프트가 표시되지만 2개의 xterm 창이 닫힙니다.
다른 호스트의 백그라운드에서 xterm을 실행하고 원래 터미널을 해제할 수 있는 방법이 있습니까?
감사해요
- 앤드류
답변1
-X 옵션은 SSH 연결을 통해 실행되는 X11 터널을 엽니다. 터널은 SSH 연결이 열려 있는 경우에만 존재할 수 있습니다.
요청한 작업을 수행하려면 대화형 세션을 포함하지 않고 SSH 자체를 백그라운드에 배치해야 합니다.
이를 수행하는 방법에는 적어도 두 가지가 있습니다. 하나는 SSH 연결 공유를 설정하는 것입니다. 이를 통해 백그라운드에서 SSH를 연 다음 공유 연결을 사용하여 여러 SSH 세션을 시작할 수 있습니다. SSH 매뉴얼 페이지에 이에 대한 자세한 내용이 있습니다.
더 쉬운 방법은 두 개의 xterm 세션을 열기 위해 백그라운드에서 ssh를 여는 것입니다.
ssh -n -X hostB sh -c "xterm&xterm" &
이 -n
옵션은 ssh가 stdin을 사용하지 않도록 지시하여 백그라운드에 배치되도록 합니다. SSH에 비밀번호가 필요한 경우 마지막 비밀번호를 생략하고 &
비밀번호를 입력한 후 백그라운드에서 일시중단할 수 있습니다.