コード例 #1
0
 def connect(self, host=None, username=None, password=None,
             private_key=None, private_key_pass=None, port=None, timeout=30,
             compress=None):
     host = host or self._host
     username = username or self._username
     password = password or self._password
     compress = compress or self._compress
     port = port if port is not None else self._port
     pkey = self._pkey
     if private_key:
         pkey = self.load_private_key(private_key, private_key_pass)
     log.debug("connecting to host %s on port %d as user %s" % (host, port,
                                                                username))
     try:
         sock = self._get_socket(host, port)
         transport = paramiko.Transport(sock)
         transport.banner_timeout = timeout
     except socket.error:
         raise exception.SSHConnectionError(host, port)
     # Enable/disable compression
     transport.use_compression(compress)
     # Authenticate the transport.
     try:
         transport.connect(username=username, pkey=pkey, password=password)
     except paramiko.AuthenticationException:
         raise exception.SSHAuthException(username, host)
     except paramiko.SSHException, e:
         msg = e.args[0]
         raise exception.SSHError(msg)
コード例 #2
0
ファイル: __init__.py プロジェクト: skeenan/StarCluster
 def connect(self,
             host=None,
             username=None,
             password=None,
             private_key=None,
             private_key_pass=None,
             port=22,
             timeout=30):
     host = host or self._host
     username = username or self._username
     password = password or self._password
     pkey = self._pkey
     if private_key:
         pkey = self.load_private_key(private_key, private_key_pass)
     log.debug("connecting to host %s on port %d as user %s" %
               (host, port, username))
     try:
         sock = self._get_socket(host, port)
         transport = ssh.Transport(sock)
         transport.banner_timeout = timeout
     except socket.error:
         raise exception.SSHConnectionError(host, port)
     # Authenticate the transport.
     try:
         transport.connect(username=username, pkey=pkey, password=password)
     except ssh.AuthenticationException:
         raise exception.SSHAuthException(username, host)
     except ssh.SSHException, e:
         msg = e.args[0]
         raise exception.SSHError(msg)
コード例 #3
0
ファイル: ssh.py プロジェクト: inteq/StarCluster
 def __init__(self,
              host,
              username=None,
              password=None,
              private_key=None,
              private_key_pass=None,
              port=22,
              timeout=30):
     self._timeout = timeout
     self._sftp_live = False
     self._sftp = None
     self._pkey = None
     if not username:
         username = os.environ['LOGNAME']
     # Begin the SSH transport.
     self._transport_live = False
     try:
         sock = self._get_socket(host, port)
         self._transport = paramiko.Transport(sock)
         self._transport.banner_timeout = self._timeout
     except socket.error:
         raise exception.SSHConnectionError(host, port)
     self._transport_live = True
     # Authenticate the transport.
     pkey = None
     if private_key:
         # Use Private Key.
         log.debug('private key specified')
         if private_key.endswith('rsa') or private_key.count('rsa'):
             pkey = self._load_rsa_key(private_key, private_key_pass)
         elif private_key.endswith('dsa') or private_key.count('dsa'):
             pkey = self._load_dsa_key(private_key, private_key_pass)
         else:
             log.debug("specified key does not end in either rsa or dsa" + \
                       ", trying both")
             pkey = self._load_rsa_key(private_key, private_key_pass)
             if pkey is None:
                 pkey = self._load_dsa_key(private_key, private_key_pass)
         self._pkey = pkey
     elif not password:
         raise exception.SSHNoCredentialsError()
     try:
         self._transport.connect(username=username,
                                 pkey=pkey,
                                 password=password)
     except paramiko.AuthenticationException:
         raise exception.SSHAuthException(username, host)
     except paramiko.SSHException, e:
         msg = e.args[0]
         raise exception.SSHError(msg)