Give the server its own session keyring on Linux

The server otherwise keeps the session keyring of the login session that
started it, which pam_keyinit(8) may revoke when that session ends,
leaving the server and its panes unable to use the kernel keyring. Join
a new session keyring with the user keyring linked in once the
configuration file has been loaded, and revoke it when the server exits.

This is controlled by a new session-keyring server option, on by
default.
This commit is contained in:
Ilya Priven
2026-10-12 11:26:28 +00:00
parent 82abcd175c
commit bba451c959
8 changed files with 83 additions and 0 deletions

4
cfg.c
View File

@@ -62,6 +62,10 @@ cfg_done(__unused struct cmdq_item *item, __unused void *data)
}
prompt_load_history();
#ifdef HAVE_KEYCTL
if (options_get_number(global_options, "session-keyring"))
keyring_join();
#endif
return (CMD_RETURN_NORMAL);
}