Beispiel #1
0
 def __init__(self):
     """
     Open a session with the local machine's SSH agent, if one is running.
     If no agent is running, initialization will succeed, but L{get_keys}
     will return an empty tuple.
     
     @raise SSHException: if an SSH agent is found, but speaks an
         incompatible protocol
     """
     self.conn = None
     if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
         conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
         try:
             conn.connect(os.environ['SSH_AUTH_SOCK'])
         except:
             # probably a dangling env var: the ssh agent is gone
             return
     elif sys.platform == 'win32':
         import win_pageant
         if win_pageant.can_talk_to_agent():
             conn = win_pageant.PageantConnection()
         else:
             return
     else:
         # no agent support
         return
     self._connect(conn)
Beispiel #2
0
    def __init__(self):
        """
        Open a session with the local machine's SSH agent, if one is running.
        If no agent is running, initialization will succeed, but L{get_keys}
        will return an empty tuple.

        @raise SSHException: if an SSH agent is found, but speaks an
            incompatible protocol
        """
        AgentSSH.__init__(self)

        if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
            conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
            try:
                conn.connect(os.environ['SSH_AUTH_SOCK'])
            except:
                # probably a dangling env var: the ssh agent is gone
                return
        elif sys.platform == 'win32':
            import win_pageant
            if win_pageant.can_talk_to_agent():
                conn = win_pageant.PageantConnection()
            else:
                return
        else:
            # no agent support
            return
        self._connect(conn)
Beispiel #3
0
    def __init__(self):
        AgentSSH.__init__(self)

        if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
            conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
            try:
                conn.connect(os.environ['SSH_AUTH_SOCK'])
            except:
                # probably a dangling env var: the ssh agent is gone
                return
        elif sys.platform == 'win32':
            import win_pageant
            if win_pageant.can_talk_to_agent():
                conn = win_pageant.PageantConnection()
            else:
                return
        else:
            # no agent support
            return
        self._connect(conn)
Beispiel #4
0
    def __init__(self):
        AgentSSH.__init__(self)

        if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
            conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
            try:
                conn.connect(os.environ['SSH_AUTH_SOCK'])
            except:
                # probably a dangling env var: the ssh agent is gone
                return
        elif sys.platform == 'win32':
            import win_pageant
            if win_pageant.can_talk_to_agent():
                conn = win_pageant.PageantConnection()
            else:
                return
        else:
            # no agent support
            return
        self._connect(conn)
Beispiel #5
0
 def connect(self):
     """
     Method automatically called by the run() method of the AgentProxyThread
     """
     if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
         conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
         try:
             retry_on_signal(lambda: conn.connect(os.environ['SSH_AUTH_SOCK']))
         except:
             # probably a dangling env var: the ssh agent is gone
             return
     elif sys.platform == 'win32':
         import win_pageant
         if win_pageant.can_talk_to_agent():
             conn = win_pageant.PageantConnection()
         else:
             return
     else:
         # no agent support
         return
     self._conn = conn
Beispiel #6
0
 def connect(self):
     """ 
     Method automatically called by the run() method of the AgentProxyThread
     """
     if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
         conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
         try:
             conn.connect(os.environ['SSH_AUTH_SOCK'])
         except:
             # probably a dangling env var: the ssh agent is gone
             return
     elif sys.platform == 'win32':
         import win_pageant
         if win_pageant.can_talk_to_agent():
             conn = win_pageant.PageantConnection()
         else:
             return
     else:
         # no agent support
         return
     self._conn = conn
Beispiel #7
0
 def __init__(self):
     """
     Open a session with the local machine's SSH agent, if one is running.
     If no agent is running, initialization will succeed, but L{get_keys}
     will return an empty tuple.
     
     @raise SSHException: if an SSH agent is found, but speaks an
         incompatible protocol
     """
     self.conn = None
     self.keys = ()
     if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
         conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
         try:
             conn.connect(os.environ['SSH_AUTH_SOCK'])
         except:
             # probably a dangling env var: the ssh agent is gone
             return
         self.conn = conn
     elif sys.platform == 'win32':
         import win_pageant
         if win_pageant.can_talk_to_agent():
             self.conn = win_pageant.PageantConnection()
         else:
             return
     else:
         # no agent support
         return
         
     ptype, result = self._send_message(chr(SSH2_AGENTC_REQUEST_IDENTITIES))
     if ptype != SSH2_AGENT_IDENTITIES_ANSWER:
         raise SSHException('could not get keys from ssh-agent')
     keys = []
     for i in range(result.get_int()):
         keys.append(AgentKey(self, result.get_string()))
         result.get_string()
     self.keys = tuple(keys)