From 06485aea1e9a77b7f9ed09c6e5de093c2c89d76c Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 15 Sep 2014 02:12:23 -0400 Subject: allow rsa or dsa keys --- ssh.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'ssh.py') diff --git a/ssh.py b/ssh.py index d4664bf..c320aa2 100644 --- a/ssh.py +++ b/ssh.py @@ -2,9 +2,20 @@ import paramiko import time class Connection(object): - def __init__(self, client, connection_id, publisher, rsa_keyfile): + def __init__(self, client, connection_id, publisher, keyfile): self.transport = paramiko.Transport(client) - self.transport.add_server_key(paramiko.RSAKey(filename=rsa_keyfile)) + + key = None + with open(keyfile) as f: + header = f.readline() + if header == "-----BEGIN DSA PRIVATE KEY-----\n": + key = paramiko.DSSKey(filename=keyfile) + elif header == "-----BEGIN RSA PRIVATE KEY-----\n": + key = paramiko.RSAKey(filename=keyfile) + if key is None: + raise Exception("%s doesn't appear to be an SSH keyfile" % keyfile) + self.transport.add_server_key(key) + self.connection_id = connection_id self.publisher = publisher self.initialized = False -- cgit v1.2.3-54-g00ecf