이전 글(아치리눅스 설치 과정 36 - GNOME Remote Desktop blackscreen fix)에 이어...

 

1. (부팅시) GDM 로그인창 때문에 원격 불가.

2. (원격접속 중) 화면잠금(Lock Screen)으로 들어가는 경우, 로그인 창이 자동으로 연결돼서 원격접속 끊어짐(+재연결 안 됨).

 

1번은 이전 글 "한계" 소제목에서 지적했고, 자동로그인 설정을 통해 해결하였습니다.

(한계점 : PC 부팅할 때 비밀번호 입력창이 안 뜸. 무방비 상태.)

2번은... 멍때리고 있다가 화면보호기 발동하는 순간에 락스크린도 같이 올라오면서 연결 끊어지고 재접속이 안 되는 상황.

 

2번 문제는 굉장히 치명적인데요, 원격 접속해서 호흡이 긴 문서를 열람하거나/잠깐 쉬었다 돌아왔는데 Lock Screen이 발동하면 그순간 RDP 원격 연결이 끊기고 재접속까지 막히기 때문에 굉장히 곤란합니다.

 

그래서 이번 글에서는 2번 문제를 극복하고, 1번 해결책의 한계점까지 해결하는 것을 목표로 합니다.

 

2번 문제 해결 방향

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3212#note_992252

위 링크에서 2번 문제의 해결법이 제시되는데요, 스크린샷으로 가져와 봤습니다.

 

▲ global.backend.get_remote_access_controller().inhibit_remote_access = () => {};

 

부팅할 때마다 콘솔창을 띄우고 위 명령어를 입력해야 된다면 불편하겠죠?

문제를 경험하고 불편함을 호소하던 분께서

https://github.com/jikamens/allow-locked-remote-desktop

https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

이 과정을 자동화하는 GNOME Shell Extensions(그놈 쉘 확장도구)를 만들어 주셨습니다.

 

▲ 오, 굿!

 

테스트 해보니, 이것을 설치하면 RDP 원격시 Lock Screen이 뜨더라도 접속이 끊기지 않더군요. 2번 문제 해결 역할을 잘 해줬습니다.

 

GNOME Shell Extensions 수동 설치 방법

GNOME Shell Extensions은 웹브라우저와 연계하여 원클릭 설치하는 것이 편합니다. 그것이 일반적인 방식이고요.

하지만 웹브라우저가 Snap / Flatpak처럼 샌드박스 형태로 배포되는 경우, 원클릭 설치가 오작동할 때가 있습니다. 그래서 GNOME Shell Extensions 수동 설치 방법을 먼저 설명하고, 소제목을 나눠서 원클릭 설치 방법까지 적겠습니다.

 

▼ 먼저, gnome-shell-extensions 패키지 설치되어 있는지 확인하고, 없으면 설치합니다.

▲ pacman -Qs gnome-shell-extensions

sudo pacman -S gnome-shell-extensions

 

▼ /home/계정명/.local/share/gnome-shell 경로에 extensions 디렉토리가 있는지 살피고, 없으면 만듭니다.

ls -al ~/.local/share/gnome-shell

mkdir ~/.local/share/gnome-shell/extensions

 

https://extensions.gnome.org 에서 원하는 GNOME 확장도구를 검색합니다. 저는 아래 링크로 접근했습니다.

https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

 

▲ 현재 사용하는 GNOME 쉘 버전을 선택하고, Extensions의 원하는 버전을 선택하면 자동으로 다운로드 됩니다.

 

▲ 참고로 GNOME Shell 버전 확인은 터미널 창에서
gnome-shell --version
이라고 명령어 입력하면 확인할 수 있습니다.

 

▲ zip 파일로 받아질 텐데, 저장 경로는 편하게 정해도 됩니다. 기본 경로는 "/home/계정명/다운로드/" 일 것입니다.

 

▲ gnome-extensions 명령어를 통해 설치할 것인데, 사용할 수 있는 옵션들은 대략 이렇습니다. 설치하려면 install 옵션을 써야 겠군요.

 

gnome-extensions install /경로명/파일명.zip 형식처럼 입력하여 설치합니다.

 

저는 gnome-extensions install /home/aaa/다운로드/allowlockedremotedesktopkamens.us.v9.shell-extension.zip 이라고 입력하여 설치했습니다.

 

▼ 부연 설명을 위한 명령어. 안 따라해도 됩니다.
ls -al /home/aaa/.local/share/gnome-shell/extensions

▲ 설치된 경로는 /home/계정명/.local/share/gnome-shell/extensions/ 에 생성된 디렉토리인데, 디렉토리 이름은 metadata.json에 적힌 UUID 값과 일치하는 것을 확인할 수 있습니다.

 

▲ 그러니까 GUI 파일관리자를 통해 수동 설치하고 싶으면 /home/계정명/.local/share/gnome-shell/extensions/ 경로에 압축을 풀고, metadata.json 파일을 텍스트 편집기로 열어 UUID를 확보한 다음 디렉토리 이름을 바꾸면 되겠지요. ▼

 

각설하고,

설치한 extension은 활성화를 해야만 사용할 수 있는데요

로그아웃+재로그인 하거나, 재부팅하여 그놈 확장 도구를 reload 합니다.

아래는 GNOME 세션 command line logout / reboot 명령어인데, 골라 쓰세요.

gnome-session-quit --force

또는

gnome-session-quit --reboot

또는

sudo reboot (원격 접속으로 extensions 설치시 추천. 로그아웃보다 오래 걸림.)

터미널 창에 이런 식으로 입력하면 로그아웃 / 재부팅 되겠죠? 그리고...

 

gnome-extensions list

위 명령어를 입력하면 목록을 확인할 수 있습니다.

gnome-extensions enable allowlockedremotedesktop@kamen.us

이런 식으로 입력하여 활성화하면 됩니다.

gnome-extensions list --enabled

활성화 되었는지는 위의 명령어로 확인 가능한데요,

 

▲ GUI로 확인하고 싶으면 "확장" 앱에 들어가 보면 됩니다.

 

▲ 저는 Allow Locked Remote Desktop 확장이 활성화된 것을 확인했습니다.

 

▲ 다운로드 했던 zip 파일은 지워도 되겠죠?

 

 2번 문제 해결 완료 ♥

 

GNOME Shell Extensions 언인스톨 방법

사용 중인 GNOME Shell Extensions를 삭제/언인스톨 하고 싶다면 비활성화 - 언인스톨 순으로 진행하면 되겠습니다. 아래 스크린 샷의 예시를 참고하세요.

 

gnome-extensions list --enabled

gnome-extensions disable allowlockedremotedesktop@kamens.us

gnome-extensions uninstall allowlockedremotedesktop@kamens.us

 

GNOME Shell Extensions "자동" 설치 방법(GUI)

솔직히, 위의 과정은 매우 귀찮죠.

GUI로 클릭 몇 번에 자동 설치되면 편하게 쓸 수 있으니, 환경 구축해 보겠습니다.

 

https://extensions.gnome.org/

그놈 쉘 확장 도구 홈페이지에 들어가면 아래 스크린샷처럼 안내가 뜰 겁니다.

웹브라우저는 구글크롬 / Firefox 중에서 선택하여 이용하면 되는데, 저는 구글 크롬 기준으로 설명할게요.

 

▲ "여기를 눌러 브라우저 확장을 설치" 링크를 클릭해 보세요.

 

https://chrome.google.com/webstore/detail/gnome-shell-integration/gphhapmejobijbbhgpjhcjognlahblep

 

▲ 크롬 웹스토어로 이동하고, "그놈 셸 확장 기능"이라는 크롬 확장이 뜰 겁니다. "Chrome에 추가" 버튼을 눌러 설치하세요.

 

아치 리눅스에 "네이티브 호스트 커넥터"라는 도구를 설치해야 됩니다.

https://wiki.gnome.org/action/show/Projects/GnomeShellIntegration/Installation

위 링크에는 gnome-browser-connector 패키지를 AUR에서 설치 하라고 나와 있는데, 공식 저장소에도 있기 때문에 굳이 그럴 필요는 없습니다.

 

sudo pacman -S gnome-browser-connector

 

https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

원하는 크롬 확장 링크에 들어가 보면...

 

▲ 기존의 설치 버튼 대신 On / Off 버튼으로 바뀌어 있을 겁니다. 토글 버튼을 On으로 바꾸면 Gnome 익스텐션이 설치 되겠지요?

 

 

▲ 설치 후 "확장" 앱에 들어가 보면...

 

▲ 활성화 과정까지 자동으로 처리된 것을 확인할 수 있지요.

 

웹브라우저에서 클릭 한두번 만으로 익스텐션 설치/삭제를 처리할 수 있기 때문에, 저는 이 활용법을 추천합니다.

 

 2번 문제 해결 완료 ♥

 

▲ 테스트 차원에서 원격접속 시도해 봤는데, 락스크린(잠금화면) 올라왔음에도 접속이 잘 되는 것을 볼 수 있었습니다.

 

부팅시 비밀번호 입력창 부활 시키기 (1번 해결책의 한계점 해결)

GDM(Gnome Display Manager)의 로그인 화면이 원격접속 길목을 막기 때문에 자동로그인 설정으로 회피 했지요.

부팅시 바탕화면이 바로 뜨는 무방비 상태가 한계점이었습니다.

 

자동로그인 직후 Lock Screen(잠금 화면)을 실행시키면 어떨까요? 시작프로그램에 등록하는 것이죠.

 

▲ GDM 로그인 화면(왼쪽)과 GDM 벗어난 이후의 Lock Screen 잠금화면(오른쪽)은 모양이 약간 다른데요, Lock Screen은 그놈 쉘 확장도구(Allow Locked Remote Desktop)를 설치해서 원격접속 시에도 접근 되도록 조치했지요? 그러니까 자동로그인 후에 이것을 띄우면 훌륭한 대체재가 될 겁니다.

 

▲ loginctl lock-session

터미널 창에서 락스크린을 띄우는 커맨드라인 명령어는 loginctl lock-session 인데, 이것을 시작프로그램에 등록하면 되겠지요?

 

nano ~/.config/autostart/lock.desktop

에디터로 /home/계정명/.config/autostart/ 디렉토리에 .desktop 확장자명의 파일을 만듭니다. 파일명은 임의로 정해도 되는데, 저는 lock 이라고 정했습니다. 그래서 lock.desktop

 

▲ 위 스크린샷을 참고하여 아래의 내용을 입력하고, 저장+빠져나옵니다.

 

[Desktop Entry]
Type=Application
Version=1.0
Name=Autolock
Comment=Locks the screen after login
Exec=loginctl lock-session

 

조치가 끝났습니다.

 

▲ 설정에서 자동 화면잠금 관련 항목을 입맛에 맞게 조정하고, 재부팅 해보면 되겠습니다.

 

▲ 이전 글(36번 글)에서 keyring을 "(암호 없는)기본 키 모음", "로그인" 이외의 이름으로 만들고, 키링 암호를 지정한 상태에서 기본값으로 설정했다면... 부팅 직후 위와 같은 스크린샷을 보게 될 겁니다.

"로그인 상태에서는 이 키 모음의 잠금을 자동으로 해제합니다" 체크박스를 체크하고 "잠금 풀기" 버튼을 눌러 넘어가세요. 다음부터 이 창이 보이지 않을 것입니다.

 

TMI : PC 사용 중 락스크린을 띄우고 싶다면 Win+L 단축키를 누르세요. 커피 한 잔 하러 가기 쉽겠죠?ㅎ

 

다음글 : 아치리눅스 설치 과정 38 - SSH 키 페어 생성, 등록 방법 (OpenSSH)

반응형