docs: def _connect_uncached(self):
          ''' activates the connection object '''
  
          if not HAVE_PARAMIKO:
              raise errors.AnsibleError("paramiko is not installed")
  
          user = self.runner.remote_user
  
          vvv("ESTABLISH CONNECTION FOR USER: %s on PORT %s TO %s" % (user, self.port, self.host), host=self.host)
  
          ssh = paramiko.SSHClient()
          ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  
          allow_agent = True
          if self.runner.remote_pass is not None:
              allow_agent = False
          try:
              private_key = None
              key_filename = None
              
              if self.runner.private_key:
                  private_key = paramiko.RSAKey.from_private_key(StringIO.StringIO(self.runner.private_key))                          
              
              if self.runner.private_key_file:
                  key_filename = os.path.expanduser(self.runner.private_key_file)
                  
              
              ssh.connect(self.host, username=user, allow_agent=allow_agent, look_for_keys=True,
                  key_filename=key_filename, pkey=private_key,
                  password=self.runner.remote_pass,
                  timeout=self.runner.timeout, port=self.port)
          except Exception, e:
              msg = str(e)
              if "PID check failed" in msg:
                  raise errors.AnsibleError("paramiko version issue, please upgrade paramiko on the machine running ansible")
              elif "Private key file is encrypted" in msg:
                  msg = 'ssh %s@%s:%s : %s\nTo connect as a different user, use -u <username>.' % (
                      user, self.host, self.port, msg)
                  raise errors.AnsibleConnectionFailed(msg)
              else:
                  raise errors.AnsibleConnectionFailed(msg)
  
          return ssh