ssh: simple support for multiple public keys loading

nistp521
Roman Zeyde 8 years ago
parent 6a5acba0b0
commit 021831073e
No known key found for this signature in database
GPG Key ID: 87CAE5FA46917CBB

@ -117,6 +117,14 @@ def handle_connection_error(func):
return wrapper
def parse_config(fname):
"""Parse config file into a list of Identity objects."""
contents = open(fname).read()
for identity_str, curve_name in re.findall('\<(.*?)\|(.*?)\>', contents):
yield device.interface.Identity(identity_str=identity_str,
curve_name=curve_name)
@handle_connection_error
def run_agent(client_factory=client.Client):
"""Run ssh-agent using given hardware client factory."""
@ -124,10 +132,14 @@ def run_agent(client_factory=client.Client):
util.setup_logging(verbosity=args.verbose)
conn = client_factory(device=device.detect())
identities = [device.interface.Identity(identity_str=args.identity,
curve_name=args.ecdsa_curve_name)]
for identity in identities:
if args.identity.startswith('/'):
identities = list(parse_config(fname=args.identity))
else:
identities = [device.interface.Identity(
identity_str=args.identity, curve_name=args.ecdsa_curve_name)]
for index, identity in enumerate(identities):
identity.identity_dict['proto'] = 'ssh'
log.info('identity #%d: %s', index, identity)
command = args.command

Loading…
Cancel
Save