Hi.
Since upgrading from Fedora 24 to 25, on one particular machine, I
cannot unlock the Login keyring. Interestingly it seems that GKR
remained at the same version from F24 to F25.
GKR just keeps telling me the password is wrong, but I know what I am
typing has to be right because it's the same password I log into the
machine with and simply logging in has unlocked that keyring for years
now.
I'm at a bit of a loss as to where to continue debugging. I have
verified that GKR daemon running under my account does indeed opening
and reading /home/brian/.gnome2/keyrings/login.keyring:
...
[pid 14533] open("/home/brian/.gnome2/keyrings/login.keyring", O_RDONLY <unfinished ...>
...
[pid 14533] <... open resumed> ) = 20
[pid 14533] read(20, <unfinished ...>
...
[pid 14533] <... read resumed> "GnomeKeyring\n\r\0\n\0\0\0\0\0\0\0\5Login\0\0\0"..., 727650) = 727650
...
[pid 14533] close(20 <unfinished ...>
...
[pid 3069] <... read resumed> "\1\0\0\0\0\0\0\0", 16) = 8
...
[pid 14533] <... close resumed> ) = 0
dbus-monitor says this is going on when I try to unlock the Login
keyring with seahorse:
method call time=1482176748.371930 sender=:1.71 -> destination=:1.58 serial=14
path=/org/gnome/keyring/Prompt/p12; interface=org.gnome.keyring.internal.Prompter.Callback; member=PromptReady
string "yes"
array [
dict entry(
string "warning"
variant variant string ""
)
dict entry(
string "password-strength"
variant variant int32 1
)
dict entry(
string "choice-chosen"
variant variant boolean true
)
dict entry(
string "message"
variant variant string "Enter password to unlock your login keyring"
)
dict entry(
string "choice-label"
variant variant string ""
)
dict entry(
string "cancel-label"
variant variant string "Cancel"
)
dict entry(
string "description"
variant variant string "The login keyring did not get unlocked when you
logged into your computer."
)
dict entry(
string "continue-label"
variant variant string "Unlock"
)
dict entry(
string "caller-window"
variant variant string ""
)
dict entry(
string "title"
variant variant string "Unlock Login Keyring"
)
]
string "[sx-aes-1]
public=[redacted]
secret=[redacted]
iv=[redacted]
"
method return time=1482176748.372129 sender=:1.58 -> destination=:1.71 serial=805 reply_serial=14
method call time=1482176748.372237 sender=:1.58 -> destination=org.freedesktop.DBus serial=806
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
string
"type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gnome.keyring.SystemPrompter'"
method return time=1482176748.372251 sender=org.freedesktop.DBus -> destination=:1.58 serial=154
reply_serial=806
method call time=1482176748.380371 sender=:1.58 -> destination=org.freedesktop.DBus serial=807
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string
"type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',arg0='org.gnome.keyring.SystemPrompter'"
method return time=1482176748.380386 sender=org.freedesktop.DBus -> destination=:1.58 serial=155
reply_serial=807
method call time=1482176748.380390 sender=:1.58 -> destination=org.freedesktop.DBus serial=808
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
string "org.gnome.keyring.SystemPrompter"
method return time=1482176748.380410 sender=org.freedesktop.DBus -> destination=:1.58 serial=156
reply_serial=808
string ":1.71"
method call time=1482176748.380427 sender=:1.58 -> destination=org.gnome.keyring.SystemPrompter serial=809
path=/org/gnome/keyring/Prompter; interface=org.gnome.keyring.internal.Prompter; member=PerformPrompt
object path "/org/gnome/keyring/Prompt/p12"
string "password"
array [
dict entry(
string "choice-label"
variant string ""
)
dict entry(
string "description"
variant string "The login keyring did not get unlocked when you logged into your
computer."
)
dict entry(
string "continue-label"
variant string "Unlock"
)
dict entry(
string "message"
variant string "Enter password to unlock your login keyring"
)
dict entry(
string "title"
variant string "Unlock Login Keyring"
)
dict entry(
string "warning"
variant string "The unlock password was incorrect"
)
]
string "[sx-aes-1]
public=[redacted]
"
method return time=1482176748.382010 sender=:1.71 -> destination=:1.58 serial=15 reply_serial=809
I've tried with a little python programlet:
python -c "import gnomekeyring;gnomekeyring.unlock_sync(None, '[redacted]');"
Gkr-Message: secret service operation failed: The password was invalid
Traceback (most recent call last):
File "<string>", line 1, in <module>
gnomekeyring.IOError
Although the dbus conversation is different with the above python
programlet:
method call time=1482177095.011718 sender=:1.76 -> destination=org.freedesktop.DBus serial=1
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=Hello
method return time=1482177095.011738 sender=org.freedesktop.DBus -> destination=:1.76 serial=1 reply_serial=1
string ":1.76"
signal time=1482177095.011745 sender=org.freedesktop.DBus -> destination=(null destination) serial=166
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.76"
string ""
string ":1.76"
signal time=1482177095.011755 sender=org.freedesktop.DBus -> destination=:1.76 serial=2
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.76"
method call time=1482177095.011838 sender=:1.76 -> destination=org.freedesktop.DBus serial=2
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',interface='org.gnome.secrets.Prompt',member='Completed'"
method call time=1482177095.011853 sender=:1.76 -> destination=org.freedesktop.DBus serial=3
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',member='NameOwnerChanged',interface='org.freedesktop.DBus'"
method call time=1482177095.011859 sender=:1.76 -> destination=org.freedesktop.secrets serial=4
path=/org/freedesktop/secrets; interface=org.freedesktop.Secret.Service; member=OpenSession
string "dh-ietf1024-sha256-aes128-cbc-pkcs7"
variant array of bytes [
[redacted]
]
method return time=1482177095.015868 sender=:1.58 -> destination=:1.76 serial=819 reply_serial=4
variant array of bytes [
[redacted]
]
object path "/org/freedesktop/secrets/session/s4"
method call time=1482177095.017636 sender=:1.76 -> destination=org.freedesktop.secrets serial=5
path=/org/freedesktop/secrets; interface=org.gnome.keyring.InternalUnsupportedGuiltRiddenInterface;
member=UnlockWithMasterPassword
object path "/org/freedesktop/secrets/aliases/default"
struct {
object path "/org/freedesktop/secrets/session/s4"
array of bytes [
16 8f 44 fe ba 78 fc 74 b7 55 e3 33 73 0f d5 16
]
array of bytes [
6c c2 6b fd f1 54 6b ec e1 70 e9 60 3a 23 4a 9d
]
string "text/plain; charset=utf8"
}
error time=1482177095.025930 sender=:1.58 -> destination=:1.76 error_name=org.gnome.keyring.Error.Denied
reply_serial=5
string "The password was invalid"
signal time=1482177095.043893 sender=org.freedesktop.DBus -> destination=:1.76 serial=5
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.76"
signal time=1482177095.043913 sender=org.freedesktop.DBus -> destination=(null destination) serial=167
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.76"
string ":1.76"
string ""
method call time=1482177096.575567 sender=:1.71 -> destination=org.freedesktop.DBus serial=20
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=ReleaseName
string "org.gnome.keyring.SystemPrompter"
signal time=1482177096.575619 sender=org.freedesktop.DBus -> destination=:1.71 serial=14
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string "org.gnome.keyring.SystemPrompter"
signal time=1482177096.575639 sender=org.freedesktop.DBus -> destination=(null destination) serial=168
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string "org.gnome.keyring.SystemPrompter"
string ":1.71"
string ""
method return time=1482177096.575657 sender=org.freedesktop.DBus -> destination=:1.71 serial=15
reply_serial=20
uint32 1
method call time=1482177096.575956 sender=:1.71 -> destination=org.freedesktop.DBus serial=21
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=ReleaseName
string "org.gnome.keyring.PrivatePrompter"
signal time=1482177096.575974 sender=org.freedesktop.DBus -> destination=:1.71 serial=16
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string "org.gnome.keyring.PrivatePrompter"
signal time=1482177096.575984 sender=org.freedesktop.DBus -> destination=(null destination) serial=169
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string "org.gnome.keyring.PrivatePrompter"
string ":1.71"
string ""
method return time=1482177096.575996 sender=org.freedesktop.DBus -> destination=:1.71 serial=17
reply_serial=21
uint32 1
signal time=1482177096.578029 sender=org.freedesktop.DBus -> destination=:1.71 serial=6
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.71"
signal time=1482177096.578048 sender=org.freedesktop.DBus -> destination=(null destination) serial=170
path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.71"
string ":1.71"
string ""
Maybe that python programlet is too old and doesn't exercise the API
correctly.
But everything points to bad password but I cannot at all see how I can
be providing an incorrect password when as I said above, I have always
relied on PAM unlocking the keyring for me with my login password and I
am trying to use my login password to unlock now when it says it's not
the correct password.
Any ideas?
Cheers,
b.
Attachment:
signature.asc
Description: This is a digitally signed message part