diff --git a/sshagent/server.py b/sshagent/server.py index 12a059c..3af8d3f 100644 --- a/sshagent/server.py +++ b/sshagent/server.py @@ -68,11 +68,11 @@ def spawn(func, **kwargs): @contextlib.contextmanager -def serve(key_files, signer, sock_path=None): +def serve(public_keys, signer, sock_path=None): if sock_path is None: sock_path = tempfile.mktemp(prefix='ssh-agent-') - keys = [formats.parse_public_key(k) for k in key_files] + keys = [formats.parse_public_key(k) for k in public_keys] environ = {'SSH_AUTH_SOCK': sock_path, 'SSH_AGENT_PID': str(os.getpid())} with unix_domain_socket_server(sock_path) as server: handler = protocol.Handler(keys=keys, signer=signer) diff --git a/sshagent/trezor.py b/sshagent/trezor.py index c50f694..f7e6ac5 100644 --- a/sshagent/trezor.py +++ b/sshagent/trezor.py @@ -57,7 +57,9 @@ class Client(object): identity = self.factory.parse_identity(label) addr = _get_address(identity) node = self.client.get_public_node(addr, self.curve_name) - return node.node.public_key + + pubkey = node.node.public_key + return formats.export_public_key(pubkey=pubkey, label=label) def sign_ssh_challenge(self, label, blob): identity = self.factory.parse_identity(label) diff --git a/sshagent/trezor_agent.py b/sshagent/trezor_agent.py index 326addb..75e852e 100644 --- a/sshagent/trezor_agent.py +++ b/sshagent/trezor_agent.py @@ -26,11 +26,10 @@ def main(): logging.basicConfig(level=level, format=fmt) with trezor.Client(factory=trezor.TrezorLibrary) as client: - key_files = [] + public_keys = [] for label in args.identity: - pubkey = client.get_public_key(label) - key_file = formats.export_public_key(pubkey=pubkey, label=label) - key_files.append(key_file) + ssh_public_key = client.get_public_key(label) + public_keys.append(ssh_public_key) command = args.command if not command: @@ -40,7 +39,7 @@ def main(): signer = client.sign_ssh_challenge try: - with server.serve(key_files=key_files, signer=signer) as env: + with server.serve(public_keys=public_keys, signer=signer) as env: return server.run_process(command=command, environ=env) except KeyboardInterrupt: log.info('server stopped')