SSH에서 원격으로 GUI 앱을 실행하려고 할 때 몇 가지 질문이 있습니다. 내 Linux 기술은 제한되어 있으며 다음 시나리오를 통해 이를 달성하는 데 몇 가지 문제가 있습니다.
CentOS 8과 GNOME GUI가 TV에 연결되어 있고 마우스나 키보드가 연결되어 있지 않은 호스트가 있습니다(이것이 원격 호스트이므로 SERVER라고 부르겠습니다). 또한 SSH 클라이언트(SSH)가 있는 로컬 호스트도 있습니다.
내가 하려는 일:
SSH를 사용하여 SERVER에 연결된 TV에 표시되는 시작 화면의 잠금을 해제하고 Retroarch를 실행하고 싶습니다(SERVER에 연결된 TV에 로드하기 위해). 그놈 시작 화면에서 나가려면 어떻게 서버에 로그인해야 합니까? 다음 명령을 사용합니다.
loginctl unlock-sessions
서버를 켜고, 키보드를 연결하고, 로그인한 후 비활성으로 인해 화면이 잠길 때까지 기다리는 경우에만 작동합니다. 또한 SSH를 통해 RETROARCH를 시작할 때 DISPLAY=:0 및 nohup을 사용하여 "일종의 작업"을 수행하는 두 가지 방법을 찾았지만 둘 다 프로세스를 SSH 세션에 잠급니다(터미널이나 SSH 세션으로 프로세스를 진행하려면 이미 서버에 로그인하고 시작 화면을 통과한 경우에만 작동합니다. SERVER에서 직접 앱을 실행하는 것처럼 실행할 수 있는 방법이 있나요?
답변1
Gnome과 같은 창 관리자와 원격으로 인터페이스하려면 VNC 세션 실행을 고려해야 합니다. 제가 아는 바로는 창 관리자가 SSH + CLI를 통해 제어되도록 설계되지 않았기 때문입니다.
X11을 통해 Gnome을 실행하는 경우 현재 X11 세션을 원격으로 노출하는 X11-vnc 사용을 고려해야 합니다. 즉, 서버에 연결된 TV에서와 같이 VNC를 통해 동일한 그림을 볼 수 있습니다.
Wayland에서 실행 중인 경우 X11-vnc Wayland 대체품이 무엇인지 인터넷에서 직접 조사해야 합니다.
첫 번째 경우의 단계는 다음과 같습니다.
섬기는 사람:
apt install x11-vnc -y
x11-vnc
고객 :
apt install tigervnc-viewer -y
ssh -L 5901:localhost:5901 <SERVER-IP>
vncviewer localhost:5901
VNC 프로토콜을 SSH 터널로 래핑하는 것이 가장 좋습니다. 따라서 많은 VNC 서버는 기본적으로 localhost에서만 수신 대기합니다. VNC의 포트번호는 변경될 수 있으나 5900부터 시작하도록 설정되어 있습니다.