자동 로그인된 사용자의 키링 잠금 해제

자동 로그인된 사용자의 키링 잠금 해제

내 그놈 데스크탑에 원격으로 액세스하고 싶습니다. 문제는 그놈의 화면 공유가 비밀번호를 저장하기 위해 키링을 사용하고 있다는 것입니다. 공유가 작동하려면 로그인한 사용자가 그놈 키링을 잠금 해제해야 합니다.

내 문제는 자동 로그인을 활성화했기 때문에 시스템이 시작되고 바탕 화면이 표시될 때 키링이 잠긴 상태로 유지된다는 것입니다. 다음을 통해 SSH 연결을 사용하여 CLI에서 화면 공유를 시작할 수 있습니다.

# allow screen control
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
# use password authentication for VNC
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
# start sharing service
systemctl --user start gnome-remote-desktop 

불행하게도 gnome-remote-desktop이 키링에 액세스할 수 없기 때문에 비밀번호 교환에 연결하지 못합니다. secret-tool을 사용하여 SSH의 비밀번호를 새로운 비밀번호로 설정하려고 시도했지만 동일한 오류가 발생합니다.

$ echo -n "random_pass" | secret-tool store --label="GNOME Remote Desktop VNC password" "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
secret-tool: Cannot create an item in a locked collection

명령줄에서 키링 잠금을 해제하려고 시도했지만 작동하지 않는 것 같습니다.

$ read -p "Enter your password: " -s pw && ( echo $pw | gnome-keyring-daemon --unlock )
Enter your password: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh

여전히 키링에 액세스하기 위한 secret-tool을 얻을 수 없습니다. 라는 패키지도 설치했지만 dnf install python3-keyring잠금 해제에 실패했습니다.

[user@fedora ~]$ keyring set "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
Password for 'org.gnome.RemoteDesktop.VncPassword' in 'xdg:schema':
Traceback (most recent call last):
  File "/usr/bin/keyring", line 33, in <module>
    sys.exit(load_entry_point('keyring==21.8.0', 'console_scripts', 'keyring')())
  File "/usr/lib/python3.10/site-packages/keyring/cli.py", line 133, in main
    return cli.run(argv)
  File "/usr/lib/python3.10/site-packages/keyring/cli.py", line 88, in run
    set_password(service, username, password)
  File "/usr/lib/python3.10/site-packages/keyring/core.py", line 60, in set_password
    get_keyring().set_password(service_name, username, password)
  File "/usr/lib/python3.10/site-packages/keyring/backends/SecretService.py", line 87, in set_password
    collection = self.get_preferred_collection()
  File "/usr/lib/python3.10/site-packages/keyring/backends/SecretService.py", line 67, in get_preferred_collection
    raise KeyringLocked("Failed to unlock the collection!")
keyring.errors.KeyringLocked: Failed to unlock the collection!

참고: 이 모든 내용은 Fedora 35에 있습니다.

요약하면 내 질문은 다음과 같습니다. VPN 연결을 통해 생성된 SSH 셸만 사용하여 부팅 시 자동으로 로그인한 사용자의 키링을 어떻게 잠금 해제합니까?

편집: 중요한 것을 언급하는 것을 잊었습니다. 키링 비밀번호를 제거하면(보호되지 않음) 문제가 해결되지만 여기서 중요한 점은 키링 비밀번호를 유지하는 것입니다.

답변1

마침내 실행 가능한 솔루션을 찾았습니다.UNIX Stackexchange의 이 게시물. 기본적으로 스크립트를 작성하세요.소스로 가져와야 하는 것SSH 원격 로그인 세션에서:

echo 'NOTE: This script will only work if launched via source or .' >&2
echo -n 'Login password: ' >&2
read -s _UNLOCK_PASSWORD || return
killall -q -u "$(whoami)" gnome-keyring-daemon
eval $(echo -n "${_UNLOCK_PASSWORD}" \
           | gnome-keyring-daemon --daemonize --login \
           | sed -e 's/^/export /')
unset _UNLOCK_PASSWORD
echo '' >&2

관련 정보