암호를 직접 전달하여 명령줄에서 Gnome Keyring Daemon의 잠금을 해제하려고 합니다. --daemonize, --login, --start의 몇 가지 변형을 시도했지만 제대로 작동하지 못했습니다.
echo $password | gnome-keyring-daemon --unlock
아무것도 잠금 해제하지 않고 돌아왔습니다 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
.
기본적으로 나는 다음과 같은 것을 원합니다 :
gnome-keyring-daemon unlock --pw $password
차이가 있는지는 확실하지 않지만 Manjaro i3wm 버전을 사용하고 있으므로 데스크톱 환경을 사용하지 않습니다.
배경:
저는 KeePassXC를 사용하여 키링을 관리하고 있습니다. 한 가지 단점은 로그인 시 키링을 자동으로 잠금 해제할 수 없다는 것입니다. 두 개의 긴 비밀번호를 입력하고 싶지 않기 때문에 해결 방법으로 다음 스크립트를 생각해 냈습니다.
- Gnome Keyring Daemon을 자동으로 잠금 해제하려면 로그인하세요.
- Gnome Keyring Daemon에는 KeePassXC의 PW(일부)가 유일한 항목으로 포함되어 있습니다.
- 프롬프트에 비밀번호의 마지막 문자를 입력하세요.
- Gnome Keyring 데몬을 처치하세요
- 비밀번호 조합을 사용하여 KeePassXC 잠금 해제
이제 KeePassXC를 다시 잠그는 반대 작업을 수행하고 싶습니다.
- KeePassXC에서 Gnome Keyring Daemon의 PW를 받으세요.
- KeePassXC를 죽여라
- GnomeKeyringDaemon 잠금 해제 <- 작업할 수 없는 부분입니다.
답변1
--unlock
(현재) 필요한 작업을 정확히 수행하는 gnome-keyring-daemon에 대한 매개변수가 있습니다 . 일반적으로 호출되면 잠금이 해제되고 악마화되고 에코됩니다 SSH_AUTH_SOCK
. 이미 실행 중인 기존 데몬이 있을 수 있다고 생각되면 해당 --replace
매개변수를 추가하여 새 데몬으로 원활하게 전환할 수 있습니다.
나는 정기적으로 공개 키(비밀번호 없음)를 사용하여 ssh를 통해 헤드리스 Ubuntu 20.0.4LTS 시스템에 로그인하지만 때로는 개발 목적으로 사용 가능한 키링이 필요할 때가 있습니다. 그래서 bash 구성 파일에 다음 함수를 정의했고 잠금 해제가 잘 수행되었습니다(기존 데몬이 실행 중인지 여부에 관계없이).
# Linux unlock gnome keyring
function unlock-keyring ()
{
read -rsp "Password: " pass
export $(echo -n "$pass" | gnome-keyring-daemon --replace --unlock)
unset pass
}
답변2
이것은 매우 잔인하고 더럽고 아마도 매우 잘못된 접근 방식이지만 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
예, 전화하여 . ~/bin/unlock-gnome-keyring
로그인 비밀번호를 입력하면 로그인 키링이 잠금 해제되고 seahorse
원격 X를 통해 실행하는 동안 libsecret 애플리케이션을 통해 이를 보고 사용할 수 있습니다.
하지만 참고하시기 바랍니다. 저는 보안 전문가가 아닙니다.그렇게 하면 심각한 보안 위험이 발생할 수 있습니다. 메모리 등에서 비밀번호가 제대로 삭제되었는지 확인하지 않아 더욱 취약해질 수 있습니다.
답변3
echo -n "pass" | gnome-keyring-daemon
어떤 명령 조합도 작동 할 수 없습니다 . 나는 또한 이 secret-tool
명령과 몇 가지 Python 라이브러리를 시도했지만 대부분은 오래되었으며 그 중 어느 것도 Seahorse에서 내 키 링을 잠금 해제하지 않았거나 GUI 암호 프롬프트를 트리거했습니다.
나에게 도움이 된 유일한 것은 내가 찾은 Python 스크립트였습니다.지텁그리고콜드버그, Python이 설치되어 있는 한 작업을 수행합니다. 스크립트를 다운로드하는 것은 다음을 실행하는 것만큼 간단합니다.
wget https://codeberg.org/umglurf/gnome-keyring-unlock/raw/branch/main/unlock.py
chmod +x unlock.py
그 후 다음 명령은 "Login"이라는 기본 키링의 잠금을 해제합니다(일반적으로 존재 gnome-keyring-daemon
하지만 그렇지 않은 경우 이 명령으로 생성됩니다).
./unlock.py <<<PASSWORDHERE
기본이 아닌 키링도 잠금 해제하려면 해당 키링의 이름과 비밀번호를 사용하여 "로그인" 키링에 프로젝트를 생성하기만 하면 됩니다. 이렇게 하면 "로그인" 키링이 잠금 해제될 때 자동으로 키링을 잠금 해제하는 옵션이 제공됩니다.
답변4
일부 사용 사례에서는 키링에서 비밀번호를 제거하는 것이 편리할 수 있습니다. 따라서 잠금을 해제할 필요가 없습니다.
Ubuntu 22.04: "seahorse"를 검색하여 엽니다. "비밀번호" 아래의 "로그인"을 마우스 오른쪽 버튼으로 클릭하세요(몇 번 정도 걸릴 수 있으며 처음에는 작동하지 않습니다). 상황에 맞는 메뉴에서 "비밀번호 변경"을 선택하십시오. 현재 비밀번호를 입력하고 새 비밀번호 필드를 비워 두세요. "암호화되지 않은 비밀번호를 저장하시겠습니까?"를 수락합니다.