1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-01-24 22:06:14 +01:00

ssh auth: Avoid password prompt when using TransientCredentialsManager

This commit is contained in:
Daniel Mach 2022-09-06 12:49:47 +02:00
parent 24072286a0
commit 3d8efe2d15
2 changed files with 11 additions and 3 deletions

View File

@ -818,7 +818,10 @@ def get_config(override_conffile=None,
'http_headers': http_headers}
api_host_options[apiurl] = APIHostOptionsEntry(entry)
optional = ('realname', 'email', 'sslcertck', 'cafile', 'capath', 'sshkey', 'allow_http')
optional = (
'realname', 'email', 'sslcertck', 'cafile', 'capath', 'sshkey', 'allow_http',
credentials.AbstractCredentialsManager.config_entry,
)
for key in optional:
if cp.has_option(url, key):
if key in ('sslcertck', 'allow_http'):

View File

@ -508,8 +508,13 @@ class SignatureAuthHandler(AuthHandlerBase):
def __init__(self, user, sshkey, basic_auth_password=None):
self.user = user
self.sshkey = sshkey
# value of `basic_auth_password` is only used as a hint if we should skip signature auth
self.basic_auth_password = bool(basic_auth_password)
apiurl = conf.config["apiurl"]
if conf.config["api_host_options"][apiurl].get("credentials_mgr_class", None) == "osc.credentials.TransientCredentialsManager":
self.basic_auth_password = False
else:
# value of `basic_auth_password` is only used as a hint if we should skip signature auth
self.basic_auth_password = bool(basic_auth_password)
def list_ssh_agent_keys(self):
cmd = ['ssh-add', '-l']