1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-27 10:16:14 +01:00

Merge pull request #1133 from dmach/sshkey-fix-TransientCredentialsManager

ssh auth: Avoid password prompt when using TransientCredentialsManager
This commit is contained in:
Daniel Mach 2022-09-06 13:21:14 +02:00 committed by GitHub
commit 1c04db6bab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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} 'http_headers': http_headers}
api_host_options[apiurl] = APIHostOptionsEntry(entry) 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: for key in optional:
if cp.has_option(url, key): if cp.has_option(url, key):
if key in ('sslcertck', 'allow_http'): if key in ('sslcertck', 'allow_http'):

View File

@ -508,8 +508,13 @@ class SignatureAuthHandler(AuthHandlerBase):
def __init__(self, user, sshkey, basic_auth_password=None): def __init__(self, user, sshkey, basic_auth_password=None):
self.user = user self.user = user
self.sshkey = sshkey 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): def list_ssh_agent_keys(self):
cmd = ['ssh-add', '-l'] cmd = ['ssh-add', '-l']