Repository URL to install this package:
|
Version:
2.10.3 ▾
|
docutils.nodesdocument)}( rawsource children]h section)}(hhh](h title)}(h
SSH agentsh]h Text
SSH agents
}(parenth _documenthsourceNlineNuba
attributes}(ids]classes]names]dupnames]backrefs]utagnamehhhhhh9/home/jforcier/Code/oss/paramiko/sites/docs/api/agent.rsthKubsphinx.addnodesindex)}(hhh]h}(h ]h"]h$]h&]h(]entries](singleparamiko.agent (module)module-paramiko.agenthNtauh*h-hhhhhN/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agenthKubh paragraph)}(hSSH Agent interfaceh]hSSH Agent interface
}(hhAhhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hN/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agenthKhhhhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:Agent (class in paramiko.agent)paramiko.agent.AgenthNtauh*h-hhhhhNhNubh,desc)}(hhh](h,desc_signature)}(hAgent()h](h,desc_annotation)}(hclass h]hclass
}(hhkhhhNhNubah}(h ]h"]h$]h&]h(] xml:spacepreserveuh*hihhehhhT/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgenthNubh,desc_addname)}(hparamiko.agent.h]hparamiko.agent.
}(hh~hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hhehhhh{hNubh, desc_name)}(hAgenth]hAgent
}(hhhhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhhehhhh{hNubeh}(h ]h\ah"]h$]h\ah&]h(]firstmoduleparamiko.agentclasshfullnamehuh*hchh`hhhh{hNubh,desc_content)}(hhh](h@)}(hX Client interface for using private keys from an SSH agent running on the
local machine. If an SSH agent is running, this class can be used to
connect to it and retrieve `.PKey` objects which can be used when
attempting to authenticate to remote SSH servers.h](hªClient interface for using private keys from an SSH agent running on the
local machine. If an SSH agent is running, this class can be used to
connect to it and retrieve
}(hh¬hhhNhNubh,pending_xref)}(h`.PKey`h]h literal)}(hh¸h]hPKey
}(hh¼hhhNhNubah}(h ]h"](xrefpypy-objeh$]h&]h(]uh*hºhh¶ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainhnjrefexplicit py:moduleh¤py:classhrefspecific reftargetPKeyrefdoc api/agentrefwarnuh*h´hNhNhh¬ubhQ objects which can be used when
attempting to authenticate to remote SSH servers.
}(hh¬hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hT/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgenthKhh©hhubh@)}(h¿Upon initialization, a session with the local machine's SSH agent is
opened, if one is running. If no agent is running, initialization will
succeed, but `get_keys` will return an empty tuple.h](hUpon initialization, a session with the local machine’s SSH agent is
opened, if one is running. If no agent is running, initialization will
succeed, but
}(hhéhhhNhNubhµ)}(h
`get_keys`h]h»)}(hhóh]hget_keys
}(hhõhhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhhñubah}(h ]h"]h$]h&]h(]reftypeobj refdomainhÿrefexplicithÖh¤h×hhٌget_keyshÛhÜh݉uh*h´hNhNhhéubh will return an empty tuple.
}(hhéhhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hhèhKhh©hhubh
field_list)}(hhh]h field)}(hhh](h
field_name)}(hraisesh]hRaises
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hhèhK ubh
field_body)}(hQ`.SSHException` --
if an SSH agent is found, but speaks an incompatible protocol
h]h@)}(hP`.SSHException` --
if an SSH agent is found, but speaks an incompatible protocolh](hµ)}(h`.SSHException`h]h»)}(hj? h]hSSHException
}(hjA hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj= ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjK refexplicithÖh¤h×hh؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhj9 ubhB –
if an SSH agent is found, but speaks an incompatible protocol
}(hj9 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hhèhK
hj5 ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hhèhK
hj hhubah}(h ]h"]h$]h&]h(]uh*j hh©hhhNhNubh,versionmodified)}(huChanged in version 2.10: Added support for native openssh agent on windows (extending previous
putty pageant support)h]h@)}(huChanged in version 2.10: Added support for native openssh agent on windows (extending previous
putty pageant support)h](h inline)}(hChanged in version 2.10: h]hChanged in version 2.10:
}(hj hhhNhNubah}(h ]h"]jw ah$]h&]h(]uh*j hj} hhhZ/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.Agent.closehKubh\Added support for native openssh agent on windows (extending previous
putty pageant support)
}(hj} hhhNhNubeh}(h ]h"]h$]h&]h(]translatableuh*h?hjy hhhj hKubah}(h ]h"]h$]h&]h(]typeversionchangedversion2.10uh*jw hhhhèhK
hh©ubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:%close() (paramiko.agent.Agent method)paramiko.agent.Agent.closehNtauh*h-hh©hhhZ/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.Agent.closehNubh_)}(hhh](hd)}(h
Agent.close()h](h)}(hcloseh]hclose
}(hj½ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj¹ hhhZ/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.Agent.closehNubh,desc_parameterlist)}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj¹ hhhjË hNubeh}(h ]j³ ah"]h$]j³ ah&]h(]h¢h£paramiko.agenth¥hh¦Agent.closeuh*hchj¶ hhhjË hNubh¨)}(hhh]h@)}(hClose the SSH agent connection.h]hClose the SSH agent connection.
}(hjâ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjµ hKhjß hhubah}(h ]h"]h$]h&]h(]uh*h§hj¶ hhhjË hNubeh}(h ]h"]h$]h&]h(]domainpyobjtypemethoddesctypejÿ noindexuh*h^hhhh©hjµ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:(get_keys() (paramiko.agent.Agent method)paramiko.agent.Agent.get_keyshNtauh*h-hh©hhhNhNubh_)}(hhh](hd)}(hAgent.get_keys()h](h)}(hget_keysh]hget_keys
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhh]/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.Agent.get_keyshNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj% hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥hh¦Agent.get_keysuh*hchj hhhj% hNubh¨)}(hhh](h@)}(hReturn the list of keys available through the SSH agent, if any. If
no SSH agent was running (or it couldn't be contacted), an empty list
will be returned.h]hReturn the list of keys available through the SSH agent, if any. If
no SSH agent was running (or it couldn’t be contacted), an empty list
will be returned.
}(hj: hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h]/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.Agent.get_keyshKhj7 hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hjO hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjL hj% hK ubj4 )}(hhh]h@)}(hHa tuple of AgentKey objects representing keys available on the
SSH agenth](ha tuple of
}(hj` hhhNhNubhµ)}(h`.AgentKey`h]h»)}(hjj h]hAgentKey
}(hjl hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjh ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjv refexplicithÖj5 h×hh؈hٌAgentKeyhÛhÜh݉uh*h´hNhNhj` hhubh5 objects representing keys available on the
SSH agent
}(hj` hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj] ubah}(h ]h"]h$]h&]h(]uh*j3 hjL ubeh}(h ]h"]h$]h&]h(]uh*j hjI ubah}(h ]h"]h$]h&]h(]uh*j hj7 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj% hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j¯ j uh*h^hhhh©hNhNubeh}(h ]h"]h$]h&]h(]uh*h§hh`hhhh{hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j½ j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:*AgentClientProxy (class in paramiko.agent)paramiko.agent.AgentClientProxyhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentClientProxy(chanRemote)h](hj)}(hclass h]hclass
}(hjÓ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihjÏ hhh_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxyhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hjâ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hjÏ hhhjá hNubh)}(hAgentClientProxyh]hAgentClientProxy
}(hjð hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjÏ hhhjá hNubjÍ )}(h
chanRemoteh]h,desc_parameter)}(h
chanRemoteh]h
chanRemote
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjþ ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjÏ hhhjá hNubeh}(h ]jÊ ah"]h$]jÊ ah&]h(]h¢h£paramiko.agenth¥hh¦jò uh*hchjÌ hhhjá hNubh¨)}(hhh](h@)}(h#Class proxying request as a client:h]h#Class proxying request as a client:
}(hj" hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxyhKhj hhubh enumerated_list)}(hhh](h list_item)}(h(client ask for a request_forward_agent()h]h@)}(hj: h]h(client ask for a request_forward_agent()
}(hj< hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj0 hKhj8 ubah}(h ]h"]h$]h&]h(]uh*j6 hj3 hhhj0 hNubj7 )}(h+server creates a proxy and a fake SSH Agenth]h@)}(hjQ h]h+server creates a proxy and a fake SSH Agent
}(hjS hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj0 hKhjO ubah}(h ]h"]h$]h&]h(]uh*j6 hj3 hhhj0 hNubj7 )}(hgserver ask for establishing a connection when needed,
calling the forward_agent_handler at client side.h]h@)}(hgserver ask for establishing a connection when needed,
calling the forward_agent_handler at client side.h]hgserver ask for establishing a connection when needed,
calling the forward_agent_handler at client side.
}(hjj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj0 hKhjf ubah}(h ]h"]h$]h&]h(]uh*j6 hj3 hhhj0 hNubj7 )}(hbthe forward_agent_handler launch a thread for connecting
the remote fake agent and the local agenth]h@)}(hbthe forward_agent_handler launch a thread for connecting
the remote fake agent and the local agenth]hbthe forward_agent_handler launch a thread for connecting
the remote fake agent and the local agent
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj0 hKhj~ ubah}(h ]h"]h$]h&]h(]uh*j6 hj3 hhhj0 hNubj7 )}(hCommunication occurs ...
h]h@)}(hCommunication occurs ...h]hCommunication occurs …
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj0 hK hj ubah}(h ]h"]h$]h&]h(]uh*j6 hj3 hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxy.closehNubeh}(h ]h"]h$]h&]h(]enumtypearabicprefixhsuffix.uh*j1 hj hhhj0 hKubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0close() (paramiko.agent.AgentClientProxy method)%paramiko.agent.AgentClientProxy.closehNtauh*h-hj hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxy.closehNubh_)}(hhh](hd)}(hAgentClientProxy.close()h](h)}(hcloseh]hclose
}(hjÐ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjÌ hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxy.closehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjÌ hhhjÞ hNubeh}(h ]jÆ ah"]h$]jÆ ah&]h(]h¢h£paramiko.agenth¥jò h¦AgentClientProxy.closeuh*hchjÉ hhhjÞ hNubh¨)}(hhh]h@)}(hNClose the current connection and terminate the agent
Should be called manuallyh]hNClose the current connection and terminate the agent
Should be called manually
}(hjó hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÈ hKhjð hhubah}(h ]h"]h$]h&]h(]uh*h§hjÉ hhhjÞ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhj hjÈ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2connect() (paramiko.agent.AgentClientProxy method)'paramiko.agent.AgentClientProxy.connecthNtauh*h-hj hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxy.connecthNubh_)}(hhh](hd)}(hAgentClientProxy.connect()h](h)}(hconnecth]hconnect
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj! hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentClientProxy.connecthNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj! hhhj3 hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jò h¦AgentClientProxy.connectuh*hchj hhhj3 hNubh¨)}(hhh]h@)}(h8Method automatically called by ``AgentProxyThread.run``.h](hMethod automatically called by
}(hjH hhhNhNubh»)}(h``AgentProxyThread.run``h]hAgentProxyThread.run
}(hjP hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjH ubh.
}(hjH hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjE hhubah}(h ]h"]h$]h&]h(]uh*h§hj hhhj3 hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj ju j uh*h^hhhj hj hNubeh}(h ]h"]h$]h&]h(]uh*h§hjÌ hhhjá hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:"AgentKey (class in paramiko.agent)paramiko.agent.AgentKeyhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentKey(agent, blob)h](hj)}(hclass h]hclass
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihj hhhW/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKeyhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hj¨ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hj hhhj§ hNubh)}(hAgentKeyh]hAgentKey
}(hj¶ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhj§ hNubjÍ )}(hagent, blobh](j )}(hagenth]hagent
}(hjÈ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjÄ ubj )}(hblobh]hblob
}(hjÖ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjÄ ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj§ hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥hh¦j¸ uh*hchj hhhj§ hNubh¨)}(hhh](h@)}(h¢Private key held in a local SSH agent. This type of key can be used for
authenticating to a remote server (signing). Most other key operations
work as expected.h]h¢Private key held in a local SSH agent. This type of key can be used for
authenticating to a remote server (signing). Most other key operations
work as expected.
}(hjô hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hW/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKeyhKhjñ hhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:+can_sign() (paramiko.agent.AgentKey method) paramiko.agent.AgentKey.can_signhNtauh*h-hjñ hhh`/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.can_signhNubh_)}(hhh](hd)}(hAgentKey.can_sign()h](h)}(hcan_signh]hcan_sign
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhh`/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.can_signhNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj' hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.can_signuh*hchj hhhj' hNubh¨)}(hhh]h@)}(hLReturn ``True`` if this key has the private part necessary for signing
data.h](hReturn
}(hj< hhhNhNubh»)}(h``True``h]hTrue
}(hjD hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj< ubh= if this key has the private part necessary for signing
data.
}(hj< hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj9 hhubah}(h ]h"]h$]h&]h(]uh*h§hj hhhj' hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj ji j uh*h^hhhjñ hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:3from_private_key() (paramiko.agent.AgentKey method)(paramiko.agent.AgentKey.from_private_keyhNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(h2AgentKey.from_private_key(file_obj, password=None)h](h)}(hfrom_private_keyh]hfrom_private_key
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj{ hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.from_private_keyhNubjÍ )}(hfile_obj, password=Noneh](j )}(hfile_objh]hfile_obj
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj ubj )}(h
password=Noneh]h
password=None
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj{ hhhj hNubeh}(h ]jv ah"]h$]jv ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.from_private_keyuh*hchjx hhhj hNubh¨)}(hhh](h@)}(hùCreate a key object by reading a private key from a file (or file-like)
object. If the private key is encrypted and ``password`` is not
``None``, the given password will be used to decrypt the key (otherwise
`.PasswordRequiredException` is thrown).h](huCreate a key object by reading a private key from a file (or file-like)
object. If the private key is encrypted and
}(hj¿ hhhNhNubh»)}(h``password``h]hpassword
}(hjÇ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj¿ ubh is not
}(hj¿ hhhNhNubh»)}(h``None``h]hNone
}(hjÙ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj¿ ubh@, the given password will be used to decrypt the key (otherwise
}(hj¿ hhhNhNubhµ)}(h`.PasswordRequiredException`h]h»)}(hjí h]hPasswordRequiredException
}(hjï hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjë ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjù refexplicithÖjº h×j¸ h؈hٌPasswordRequiredExceptionhÛhÜh݉uh*h´hNhNhj¿ ubh is thrown).
}(hj¿ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.from_private_keyhKhj¼ hhubj )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hj hK ubj4 )}(hhh]h bullet_list)}(hhh](j7 )}(hhh]h@)}(h-file_obj -- the file-like object to read fromh](h,literal_strong)}(hfile_objh]hfile_obj
}(hj9 hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj3 ubh –
}(hj3 hhhNhNubh!the file-like object to read from
}(hj3 hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj0 ubah}(h ]h"]h$]h&]h(]uh*j6 hj- ubj7 )}(hhh]h@)}(hSpassword (str) -- an optional password to use to decrypt the key, if it's encryptedh](j8 )}(hpasswordh]hpassword
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj^ ubh (
}(hj^ hhhNhNubhµ)}(hhh]h,literal_emphasis)}(hstrh]hstr
}(hjy hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjt ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypeobj reftargetj{ h؈uh*h´hj^ ubh)
}(hj^ hhhNhNubh –
}(hj^ hhhNhNubhCan optional password to use to decrypt the key, if it’s encrypted
}(hj^ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj[ ubah}(h ]h"]h$]h&]h(]uh*j6 hj- ubeh}(h ]h"]h$]h&]h(]uh*j+ hj( ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh](j$ )}(hReturnsh]hReturns
}(hjÀ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj½ hj hK ubj4 )}(hhh]h@)}(h)a new PKey based on the given private keyh](ha new
}(hjÑ hhhNhNubhµ)}(h`.PKey`h]h»)}(hjÛ h]hPKey
}(hjÝ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjÙ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjç refexplicithÖjº h×j¸ h؈hٌPKeyhÛhÜh݉uh*h´hNhNhjÑ hhubh based on the given private key
}(hjÑ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÎ ubah}(h ]h"]h$]h&]h(]uh*j3 hj½ ubeh}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh](j$ )}(hraisesh]hRaises
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj
hj hK ubj4 )}(h4``IOError`` -- if there was an error reading the keyh]h@)}(hj h](h»)}(h``IOError``h]hIOError
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj" ubh* – if there was an error reading the key
}(hj" hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj ubah}(h ]h"]h$]h&]h(]uh*j3 hj
ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjL hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjI hj hK ubj4 )}(hb`.PasswordRequiredException` --
if the private key file is encrypted, and ``password`` is ``None``h]h@)}(hb`.PasswordRequiredException` --
if the private key file is encrypted, and ``password`` is ``None``h](hµ)}(h`.PasswordRequiredException`h]h»)}(hjd h]hPasswordRequiredException
}(hjf hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjb ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjp refexplicithÖjº h×j¸ h؈hٌPasswordRequiredExceptionhÛhÜh݉uh*h´hNhNhj^ ubh/ –
if the private key file is encrypted, and
}(hj^ hhhNhNubh»)}(h``password``h]hpassword
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj^ ubh is
}(hj^ hhhNhNubh»)}(h``None``h]hNone
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj^ ubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjZ ubah}(h ]h"]h$]h&]h(]uh*j3 hjI ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hj¹ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj¶ hj hK ubj4 )}(h-`.SSHException` -- if the key file is invalidh]h@)}(hjÉ h](hµ)}(h`.SSHException`h]h»)}(hjÐ h]hSSHException
}(hjÒ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjÎ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjÜ refexplicithÖjº h×j¸ h؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhjË ubh – if the key file is invalid
}(hjË hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjÇ ubah}(h ]h"]h$]h&]h(]uh*j3 hj¶ ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubeh}(h ]h"]h$]h&]h(]uh*j hj¼ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hjx hhhj hNubeh}(h ]h"]h$]h&]h(]jü j jþ methodj j j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:8from_private_key_file() (paramiko.agent.AgentKey method)-paramiko.agent.AgentKey.from_private_key_filehNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(h7AgentKey.from_private_key_file(filename, password=None)h](h)}(hfrom_private_key_fileh]hfrom_private_key_file
}(hj* hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj& hhhm/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.from_private_key_filehNubjÍ )}(hfilename, password=Noneh](j )}(hfilenameh]hfilename
}(hj= hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj9 ubj )}(h
password=Noneh]h
password=None
}(hjK hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj9 ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj& hhhj8 hNubeh}(h ]j! ah"]h$]j! ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.from_private_key_fileuh*hchj# hhhj8 hNubh¨)}(hhh](h@)}(hX Create a key object by reading a private key file. If the private
key is encrypted and ``password`` is not ``None``, the given password
will be used to decrypt the key (otherwise `.PasswordRequiredException`
is thrown). Through the magic of Python, this factory method will
exist in all subclasses of PKey (such as `.RSAKey` or `.DSSKey`), but
is useless on the abstract PKey class.h](hXCreate a key object by reading a private key file. If the private
key is encrypted and
}(hjj hhhNhNubh»)}(h``password``h]hpassword
}(hjr hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjj ubh is not
}(hjj hhhNhNubh»)}(h``None``h]hNone
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjj ubh@, the given password
will be used to decrypt the key (otherwise
}(hjj hhhNhNubhµ)}(h`.PasswordRequiredException`h]h»)}(hj h]hPasswordRequiredException
}(hj hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj¤ refexplicithÖje h×j¸ h؈hٌPasswordRequiredExceptionhÛhÜh݉uh*h´hNhNhjj ubhm
is thrown). Through the magic of Python, this factory method will
exist in all subclasses of PKey (such as
}(hjj hhhNhNubhµ)}(h `.RSAKey`h]h»)}(hjº h]hRSAKey
}(hj¼ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj¸ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjÆ refexplicithÖje h×j¸ h؈hٌRSAKeyhÛhÜh݉uh*h´hNhNhjj ubh or
}(hjj hhhNhNubhµ)}(h `.DSSKey`h]h»)}(hjÜ h]hDSSKey
}(hjÞ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjÚ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjè refexplicithÖje h×j¸ h؈hٌDSSKeyhÛhÜh݉uh*h´hNhNhjj ubh-), but
is useless on the abstract PKey class.
}(hjj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hm/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.from_private_key_filehKhjg hhubj )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hj8 hK ubj4 )}(hhh]j, )}(hhh](j7 )}(hhh]h@)}(h*filename (str) -- name of the file to readh](j8 )}(hfilenameh]hfilename
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj ubh (
}(hj hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hj9 hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hj6 ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej reftargetj; h؈uh*h´hj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubhname of the file to read
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j6 hj ubj7 )}(hhh]h@)}(hXpassword (str) -- an optional password to use to decrypt the key file, if it's
encryptedh](j8 )}(hpasswordh]hpassword
}(hjq hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hjm ubh (
}(hjm hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hj ubah}(h ]h"]h$]h&]h(] refdomainjN refexplicitreftypej reftargetj h؈uh*h´hjm ubh)
}(hjm hhhNhNubh –
}(hjm hhhNhNubhHan optional password to use to decrypt the key file, if it’s
encrypted
}(hjm hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjj ubah}(h ]h"]h$]h&]h(]uh*j6 hj ubeh}(h ]h"]h$]h&]h(]uh*j+ hj ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh](j$ )}(hReturnsh]hReturns
}(hjË hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjÈ hj8 hK ubj4 )}(hhh]h@)}(h)a new PKey based on the given private keyh](ha new
}(hjÜ hhhNhNubhµ)}(h`.PKey`h]h»)}(hjæ h]hPKey
}(hjè hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjä ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjò refexplicithÖje h×j¸ h؈hٌPKeyhÛhÜh݉uh*h´hNhNhjÜ hhubh based on the given private key
}(hjÜ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÙ ubah}(h ]h"]h$]h&]h(]uh*j3 hjÈ ubeh}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh](j$ )}(hraisesh]hRaises
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj
hj hK ubj4 )}(h5``IOError`` -- if there was an error reading the fileh]h@)}(hj+
h](h»)}(h``IOError``h]hIOError
}(hj0
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj-
ubh+ – if there was an error reading the file
}(hj-
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj)
ubah}(h ]h"]h$]h&]h(]uh*j3 hj
ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjW
hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjT
hj hK ubj4 )}(hb`.PasswordRequiredException` -- if the private key file is
encrypted, and ``password`` is ``None``h]h@)}(hb`.PasswordRequiredException` -- if the private key file is
encrypted, and ``password`` is ``None``h](hµ)}(h`.PasswordRequiredException`h]h»)}(hjo
h]hPasswordRequiredException
}(hjq
hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjm
ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj{
refexplicithÖje h×j¸ h؈hٌPasswordRequiredExceptionhÛhÜh݉uh*h´hNhNhji
ubh/ – if the private key file is
encrypted, and
}(hji
hhhNhNubh»)}(h``password``h]hpassword
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhji
ubh is
}(hji
hhhNhNubh»)}(h``None``h]hNone
}(hj¡
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhji
ubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhje
ubah}(h ]h"]h$]h&]h(]uh*j3 hjT
ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjÄ
hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjÁ
hj hK ubj4 )}(h-`.SSHException` -- if the key file is invalidh]h@)}(hjÔ
h](hµ)}(h`.SSHException`h]h»)}(hjÛ
h]hSSHException
}(hjÝ
hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjÙ
ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjç
refexplicithÖje h×j¸ h؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhjÖ
ubh – if the key file is invalid
}(hjÖ
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ
ubah}(h ]h"]h$]h&]h(]uh*j3 hjÁ
ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubeh}(h ]h"]h$]h&]h(]uh*j hjg hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj# hhhj8 hNubeh}(h ]h"]h$]h&]h(]jü jN jþ methodj j j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:-get_base64() (paramiko.agent.AgentKey method)"paramiko.agent.AgentKey.get_base64hNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(hAgentKey.get_base64()h](h)}(h
get_base64h]h
get_base64
}(hj5 hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj1 hhhb/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_base64hNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj1 hhhjC hNubeh}(h ]j, ah"]h$]j, ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.get_base64uh*hchj. hhhjC hNubh¨)}(hhh](h@)}(h¸Return a base64 string containing the public part of this key. Nothing
secret is revealed. This format is compatible with that used to store
public key files or recognized host keys.h]h¸Return a base64 string containing the public part of this key. Nothing
secret is revealed. This format is compatible with that used to store
public key files or recognized host keys.
}(hjX hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hb/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_base64hKhjU hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hjm hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjj hjC hK ubj4 )}(hhh]h@)}(h6a base64 string containing the public part of the key.h](h a base64
}(hj~ hhhNhNubhµ)}(h`string <str>`h]h»)}(hj h]hstring
}(hj hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithÖjS h×j¸ hٌstrhÛhÜh݉uh*h´hNhNhj~ hhubh' containing the public part of the key.
}(hj~ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj{ ubah}(h ]h"]h$]h&]h(]uh*j3 hjj ubeh}(h ]h"]h$]h&]h(]uh*j hjg ubah}(h ]h"]h$]h&]h(]uh*j hjU hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj. hhhjC hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj jÍ j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:+get_bits() (paramiko.agent.AgentKey method) paramiko.agent.AgentKey.get_bitshNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(hAgentKey.get_bits()h](h)}(hget_bitsh]hget_bits
}(hjã hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjß hhh`/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_bitshNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjß hhhjñ hNubeh}(h ]jÚ ah"]h$]jÚ ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.get_bitsuh*hchjÜ hhhjñ hNubh¨)}(hhh](h@)}(hnReturn the number of significant bits in this key. This is useful
for judging the relative security of a key.h]hnReturn the number of significant bits in this key. This is useful
for judging the relative security of a key.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h`/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_bitshKhj hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hjñ hK ubj4 )}(hhh]h@)}(hbits in the key (as an int)h](hbits in the key (as an
}(hj, hhhNhNubhµ)}(h`int`h]h»)}(hj6 h]hint
}(hj8 hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj4 ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjB refexplicithÖj h×j¸ hٌinthÛhÜh݉uh*h´hNhNhj, hhubh)
}(hj, hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj) ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj ubah}(h ]h"]h$]h&]h(]uh*j hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hjÜ hhhjñ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j{ j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2get_fingerprint() (paramiko.agent.AgentKey method)'paramiko.agent.AgentKey.get_fingerprinthNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(hAgentKey.get_fingerprint()h](h)}(hget_fingerprinth]hget_fingerprint
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_fingerprinthNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.get_fingerprintuh*hchj hhhj hNubh¨)}(hhh](h@)}(hVReturn an MD5 fingerprint of the public part of this key. Nothing
secret is revealed.h]hVReturn an MD5 fingerprint of the public part of this key. Nothing
secret is revealed.
}(hj´ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.get_fingerprinthKhj± hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hjÉ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjÆ hj hK ubj4 )}(hhh]h@)}(h@a 16-byte string (binary) of the MD5 fingerprint, in SSH
format.h](h
a 16-byte
}(hjÚ hhhNhNubhµ)}(h`string <str>`h]h»)}(hjä h]hstring
}(hjæ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjâ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjð refexplicithÖj¯ h×j¸ hٌstrhÛhÜh݉uh*h´hNhNhjÚ hhubh0 (binary) of the MD5 fingerprint, in SSH
format.
}(hjÚ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj× ubah}(h ]h"]h$]h&]h(]uh*j3 hjÆ ubeh}(h ]h"]h$]h&]h(]uh*j hjà ubah}(h ]h"]h$]h&]h(]uh*j hj± hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j)
j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:3load_certificate() (paramiko.agent.AgentKey method)(paramiko.agent.AgentKey.load_certificatehNtauh*h-hjñ hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.load_certificatehNubh_)}(hhh](hd)}(h AgentKey.load_certificate(value)h](h)}(hload_certificateh]hload_certificate
}(hj@
hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj<
hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.load_certificatehNubjÍ )}(hvalueh]j )}(hvalueh]hvalue
}(hjS
hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjO
ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj<
hhhjN
hNubeh}(h ]j6
ah"]h$]j6
ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.load_certificateuh*hchj9
hhhjN
hNubh¨)}(hhh](h@)}(h¸Supplement the private key contents with data loaded from an OpenSSH
public key (``.pub``) or certificate (``-cert.pub``) file, a string
containing such a file, or a `.Message` object.h](hQSupplement the private key contents with data loaded from an OpenSSH
public key (
}(hjr
hhhNhNubh»)}(h``.pub``h]h.pub
}(hjz
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjr
ubh) or certificate (
}(hjr
hhhNhNubh»)}(h
``-cert.pub``h]h -cert.pub
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjr
ubh.) file, a string
containing such a file, or a
}(hjr
hhhNhNubhµ)}(h
`.Message`h]h»)}(hj
h]hMessage
}(hj¢
hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj
ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj¬
refexplicithÖjm
h×j¸ h؈hٌMessagehÛhÜh݉uh*h´hNhNhjr
ubh object.
}(hjr
hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj8
hKhjo
hhubh@)}(hX The .pub contents adds no real value, since the private key
file includes sufficient information to derive the public
key info. For certificates, however, this can be used on
the client side to offer authentication requests to the server
based on certificate instead of raw public key.h]hX The .pub contents adds no real value, since the private key
file includes sufficient information to derive the public
key info. For certificates, however, this can be used on
the client side to offer authentication requests to the server
based on certificate instead of raw public key.
}(hjÆ
hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj8
hKhjo
hhubh@)}(hNSee:
https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeysh](hSee:
}(hjÔ
hhhNhNubh reference)}(hIhttps://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeysh]hIhttps://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys
}(hjÞ
hhhNhNubah}(h ]h"]h$]h&]h(]refurijà
uh*jÜ
hjÔ
ubeh}(h ]h"]h$]h&]h(]uh*h?hj8
hKhjo
hhubh@)}(hNote: very little effort is made to validate the certificate contents,
that is for the server to decide if it is good enough to authenticate
successfully.h]hNote: very little effort is made to validate the certificate contents,
that is for the server to decide if it is good enough to authenticate
successfully.
}(hjó
hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj8
hKhjo
hhubeh}(h ]h"]h$]h&]h(]uh*h§hj9
hhhjN
hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhjñ hj8
hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1verify_ssh_sig() (paramiko.agent.AgentKey method)¶miko.agent.AgentKey.verify_ssh_sighNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(h"AgentKey.verify_ssh_sig(data, msg)h](h)}(hverify_ssh_sigh]hverify_ssh_sig
}(hj$ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.verify_ssh_sighNubjÍ )}(h data, msgh](j )}(hdatah]hdata
}(hj7 hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj3 ubj )}(hmsgh]hmsg
}(hjE hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj3 ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj2 hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.verify_ssh_siguh*hchj hhhj2 hNubh¨)}(hhh](h@)}(hxGiven a blob of data, and an SSH message representing a signature of
that data, verify that it was signed with this key.h]hxGiven a blob of data, and an SSH message representing a signature of
that data, verify that it was signed with this key.
}(hjd hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.verify_ssh_sighKhja hhubj )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hjy hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjv hj2 hK ubj4 )}(hhh]j, )}(hhh](j7 )}(hhh]h@)}(h'data (str) -- the data that was signed.h](j8 )}(hdatah]hdata
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj ubh (
}(hj hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hj© hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hj¦ ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej reftargetj« h؈uh*h´hj ubh)
}(hj hhhNhNubh –
}(hj hhhNhNubhthe data that was signed.
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j6 hj ubj7 )}(hhh]h@)}(h)msg (Message) -- an SSH signature messageh](j8 )}(hmsgh]hmsg
}(hjá hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hjÝ ubh (
}(hjÝ hhhNhNubhµ)}(hhh]jx )}(h.Messageh]hMessage
}(hjö hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjó ubah}(h ]h"]h$]h&]h(] refdomainj¾ refexplicitreftypej reftargetMessageh؈uh*h´hjÝ ubh)
}(hjÝ hhhNhNubh –
}(hjÝ hhhNhNubhan SSH signature message
}(hjÝ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÚ ubah}(h ]h"]h$]h&]h(]uh*j6 hj ubeh}(h ]h"]h$]h&]h(]uh*j+ hj ubah}(h ]h"]h$]h&]h(]uh*j3 hjv ubeh}(h ]h"]h$]h&]h(]uh*j hjs ubj )}(hhh](j$ )}(hReturnsh]hReturns
}(hj< hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj9 hj2 hK ubj4 )}(hhh]h@)}(h:True if the signature verifies correctly; False otherwise.h](h»)}(h``True``h]hTrue
}(hjQ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjM hhhNhNubh& if the signature verifies correctly;
}(hjM hhhNhNubh»)}(h ``False``h]hFalse
}(hjc hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjM hhhNhNubh otherwise.
}(hjM hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjJ ubah}(h ]h"]h$]h&]h(]uh*j3 hj9 ubeh}(h ]h"]h$]h&]h(]uh*j hjs ubeh}(h ]h"]h$]h&]h(]uh*j hja hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj2 hNubeh}(h ]h"]h$]h&]h(]jü j¾ jþ methodj j j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:4write_private_key() (paramiko.agent.AgentKey method))paramiko.agent.AgentKey.write_private_keyhNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(h3AgentKey.write_private_key(file_obj, password=None)h](h)}(hwrite_private_keyh]hwrite_private_key
}(hj¯ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj« hhhi/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.write_private_keyhNubjÍ )}(hfile_obj, password=Noneh](j )}(hfile_objh]hfile_obj
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj¾ ubj )}(h
password=Noneh]h
password=None
}(hjÐ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj¾ ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj« hhhj½ hNubeh}(h ]j¦ ah"]h$]j¦ ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.write_private_keyuh*hchj¨ hhhj½ hNubh¨)}(hhh](h@)}(hWrite private key contents into a file (or file-like) object. If the
password is not ``None``, the key is encrypted before writing.h](hVWrite private key contents into a file (or file-like) object. If the
password is not
}(hjï hhhNhNubh»)}(h``None``h]hNone
}(hj÷ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjï ubh&, the key is encrypted before writing.
}(hjï hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hi/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.write_private_keyhKhjì hhubj )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hj½ hK ubj4 )}(hhh]j, )}(hhh](j7 )}(hhh]h@)}(h.file_obj -- the file-like object to write intoh](j8 )}(hfile_objh]hfile_obj
}(hj1 hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj- ubh –
}(hj- hhhNhNubh"the file-like object to write into
}(hj- hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj* ubah}(h ]h"]h$]h&]h(]uh*j6 hj' ubj7 )}(hhh]h@)}(h@password (str) -- an optional password to use to encrypt the keyh](j8 )}(hpasswordh]hpassword
}(hjZ hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hjV ubh (
}(hjV hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hjo hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjl ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej reftargetjq h؈uh*h´hjV ubh)
}(hjV hhhNhNubh –
}(hjV hhhNhNubh.an optional password to use to encrypt the key
}(hjV hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjS ubah}(h ]h"]h$]h&]h(]uh*j6 hj' ubeh}(h ]h"]h$]h&]h(]uh*j+ hj$ ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj ubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjµ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj² hj hK ubj4 )}(h8``IOError`` -- if there was an error writing to the fileh]h@)}(hjÅ h](h»)}(h``IOError``h]hIOError
}(hjÊ hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhjÇ ubh. – if there was an error writing to the file
}(hjÇ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjà ubah}(h ]h"]h$]h&]h(]uh*j3 hj² ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjñ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjî hj hK ubj4 )}(h(`.SSHException` -- if the key is invalidh]h@)}(hj h](hµ)}(h`.SSHException`h]h»)}(hj h]hSSHException
}(hj
hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj refexplicithÖjê h×j¸ h؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhj ubh – if the key is invalid
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhjÿ ubah}(h ]h"]h$]h&]h(]uh*j3 hjî ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj hhubeh}(h ]h"]h$]h&]h(]uh*j hjì hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj¨ hhhj½ hNubeh}(h ]h"]h$]h&]h(]jü j jþ methodj jL j uh*h^hhhjñ hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:9write_private_key_file() (paramiko.agent.AgentKey method).paramiko.agent.AgentKey.write_private_key_filehNtauh*h-hjñ hhhNhNubh_)}(hhh](hd)}(h8AgentKey.write_private_key_file(filename, password=None)h](h)}(hwrite_private_key_fileh]hwrite_private_key_file
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj^ hhhn/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.write_private_key_filehNubjÍ )}(hfilename, password=Noneh](j )}(hfilenameh]hfilename
}(hju hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjq ubj )}(h
password=Noneh]h
password=None
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjq ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj^ hhhjp hNubeh}(h ]jY ah"]h$]jY ah&]h(]h¢h£paramiko.agenth¥j¸ h¦AgentKey.write_private_key_fileuh*hchj[ hhhjp hNubh¨)}(hhh](h@)}(hnWrite private key contents into a file. If the password is not
``None``, the key is encrypted before writing.h](h@Write private key contents into a file. If the password is not
}(hj¢ hhhNhNubh»)}(h``None``h]hNone
}(hjª hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj¢ ubh&, the key is encrypted before writing.
}(hj¢ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hn/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentKey.write_private_key_filehKhj hhubj )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hjÉ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjÆ hjp hK ubj4 )}(hhh]j, )}(hhh](j7 )}(hhh]h@)}(h+filename (str) -- name of the file to writeh](j8 )}(hfilenameh]hfilename
}(hjä hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hjà ubh (
}(hjà hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hjù hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjö ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej reftargetjû h؈uh*h´hjà ubh)
}(hjà hhhNhNubh –
}(hjà hhhNhNubhname of the file to write
}(hjà hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hjÝ ubah}(h ]h"]h$]h&]h(]uh*j6 hjÚ ubj7 )}(hhh]h@)}(hEpassword (str) -- an optional password to use to encrypt the key fileh](j8 )}(hpasswordh]hpassword
}(hj1 hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj- ubh (
}(hj- hhhNhNubhµ)}(hhh]jx )}(hstrh]hstr
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjC ubah}(h ]h"]h$]h&]h(] refdomainj refexplicitreftypej reftargetjH h؈uh*h´hj- ubh)
}(hj- hhhNhNubh –
}(hj- hhhNhNubh3an optional password to use to encrypt the key file
}(hj- hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj* ubah}(h ]h"]h$]h&]h(]uh*j6 hjÚ ubeh}(h ]h"]h$]h&]h(]uh*j+ hj× ubah}(h ]h"]h$]h&]h(]uh*j3 hjÆ ubeh}(h ]h"]h$]h&]h(]uh*j hjà ubj )}(hhh](j$ )}(hraisesh]hRaises
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj hj hK ubj4 )}(h5``IOError`` -- if there was an error writing the fileh]h@)}(hj h](h»)}(h``IOError``h]hIOError
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj ubh+ – if there was an error writing the file
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhjà hhubj )}(hhh](j$ )}(hraisesh]hRaises
}(hjÇ hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hjÄ hj hK ubj4 )}(h(`.SSHException` -- if the key is invalidh]h@)}(hj× h](hµ)}(h`.SSHException`h]h»)}(hjÞ h]hSSHException
}(hjà hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhjÜ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjê refexplicithÖj h×j¸ h؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhjÙ ubh – if the key is invalid
}(hjÙ hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hK hjÕ ubah}(h ]h"]h$]h&]h(]uh*j3 hjÄ ubeh}(h ]h"]h$]h&]h(]uh*j hj hK hjà hhubeh}(h ]h"]h$]h&]h(]uh*j hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj[ hhhjp hNubeh}(h ]h"]h$]h&]h(]jü j jþ methodj j" j uh*h^hhhjñ hNhNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj§ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j0 j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:)AgentLocalProxy (class in paramiko.agent)paramiko.agent.AgentLocalProxyhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentLocalProxy(agent)h](hj)}(hclass h]hclass
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihjB hhh^/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxyhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hjU hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hjB hhhjT hNubh)}(hAgentLocalProxyh]hAgentLocalProxy
}(hjc hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjB hhhjT hNubjÍ )}(hagenth]j )}(hagenth]hagent
}(hju hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjq ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjB hhhjT hNubeh}(h ]j= ah"]h$]j= ah&]h(]h¢h£paramiko.agenth¥hh¦je uh*hchj? hhhjT hNubh¨)}(hhh](h@)}(hzClass to be used when wanting to ask a local SSH Agent being
asked from a remote fake agent (so use a unix socket for ex.)h]hzClass to be used when wanting to ask a local SSH Agent being
asked from a remote fake agent (so use a unix socket for ex.)
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h^/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxyhKhj hhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1daemon (paramiko.agent.AgentLocalProxy attribute)%paramiko.agent.AgentLocalProxy.daemonhNtauh*h-hj hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.daemonhNubh_)}(hhh](hd)}(hAgentLocalProxy.daemonh]h)}(hdaemonh]hdaemon
}(hj¸ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj´ hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.daemonhNubah}(h ]j® ah"]h$]j® ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.daemonuh*hchj± hhhjÆ hNubh¨)}(hhh](h@)}(hBA boolean value indicating whether this thread is a daemon thread.h]hBA boolean value indicating whether this thread is a daemon thread.
}(hjÒ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj° hKhjÏ hhubh@)}(hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.h]hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.
}(hjà hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj° hKhjÏ hhubh@)}(hJThe entire Python program exits when no alive non-daemon threads are
left.h]hJThe entire Python program exits when no alive non-daemon threads are
left.
}(hjî hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj° hKhjÏ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj± hhhjÆ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej j j uh*h^hhhj hj° hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:8get_connection() (paramiko.agent.AgentLocalProxy method)-paramiko.agent.AgentLocalProxy.get_connectionhNtauh*h-hj hhhm/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.get_connectionhNubh_)}(hhh](hd)}(h AgentLocalProxy.get_connection()h](h)}(hget_connectionh]hget_connection
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhm/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.get_connectionhNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj. hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.get_connectionuh*hchj hhhj. hNubh¨)}(hhh](h@)}(h2Return a pair of socket object and string address.h]h2Return a pair of socket object and string address.
}(hjC hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj@ hhubh@)}(h
May block!h]h
May block!
}(hjQ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj@ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj. hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj jl j uh*h^hhhj hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0ident (paramiko.agent.AgentLocalProxy attribute)$paramiko.agent.AgentLocalProxy.identhNtauh*h-hj hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.identhNubh_)}(hhh](hd)}(hAgentLocalProxy.identh]h)}(hidenth]hident
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.identhNubah}(h ]jy ah"]h$]jy ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.identuh*hchj| hhhj hNubh¨)}(hhh](h@)}(hDThread identifier of this thread or None if it has not been started.h]hDThread identifier of this thread or None if it has not been started.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj{ hKhj hhubh@)}(hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.h]hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.
}(hj« hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj{ hKhj hhubeh}(h ]h"]h$]h&]h(]uh*h§hj| hhhj hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej jÆ j uh*h^hhhj hj{ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1isAlive() (paramiko.agent.AgentLocalProxy method)¶miko.agent.AgentLocalProxy.isAlivehNtauh*h-hj hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.isAlivehNubh_)}(hhh](hd)}(hAgentLocalProxy.isAlive()h](h)}(hisAliveh]hisAlive
}(hjÝ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjÙ hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.isAlivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjÙ hhhjë hNubeh}(h ]jÓ ah"]h$]jÓ ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.isAliveuh*hchjÖ hhhjë hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÕ hKhjý hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÕ hKhjý hhubeh}(h ]h"]h$]h&]h(]uh*h§hjÖ hhhjë hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j) j uh*h^hhhj hjÕ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2is_alive() (paramiko.agent.AgentLocalProxy method)'paramiko.agent.AgentLocalProxy.is_alivehNtauh*h-hj hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.is_alivehNubh_)}(hhh](hd)}(hAgentLocalProxy.is_alive()h](h)}(his_aliveh]his_alive
}(hj@ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj< hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.is_alivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj< hhhjN hNubeh}(h ]j6 ah"]h$]j6 ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.is_aliveuh*hchj9 hhhjN hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hjc hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj8 hKhj` hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hjq hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj8 hKhj` hhubeh}(h ]h"]h$]h&]h(]uh*h§hj9 hhhjN hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhj hj8 hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:.join() (paramiko.agent.AgentLocalProxy method)#paramiko.agent.AgentLocalProxy.joinhNtauh*h-hj hhhc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.joinùÊ hNubh_)}(hhh](hd)}(h"AgentLocalProxy.join(timeout=None)h](h)}(hjoinh]hjoin
}(hj£ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.joinhNubjÍ )}(htimeout=Noneh]j )}(htimeout=Noneh]htimeout=None
}(hj¶ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj² ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj± hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.joinuh*hchj hhhj± hNubh¨)}(hhh](h@)}(h!Wait until the thread terminates.h]h!Wait until the thread terminates.
}(hjÕ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ hhubh@)}(h³This blocks the calling thread until the thread whose join() method is
called terminates -- either normally or through an unhandled exception
or until the optional timeout occurs.h]h´This blocks the calling thread until the thread whose join() method is
called terminates – either normally or through an unhandled exception
or until the optional timeout occurs.
}(hjã hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ hhubh@)}(hXF When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened -- if the
thread is still alive, the join() call timed out.h]hXG When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened – if the
thread is still alive, the join() call timed out.
}(hjñ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ hhubh@)}(hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.h]hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.
}(hjÿ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hK
hjÒ hhubh@)}(h$A thread can be join()ed many times.h]h$A thread can be join()ed many times.
}(hj
hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ hhubh@)}(hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.h]hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÒ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj± hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j6 j uh*h^hhhj hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:/name (paramiko.agent.AgentLocalProxy attribute)#paramiko.agent.AgentLocalProxy.namehNtauh*h-hj hhhc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.namehNubh_)}(hhh](hd)}(hAgentLocalProxy.nameh]h)}(hnameh]hname
}(hjM hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjI hhhc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.namehNubah}(h ]jC ah"]h$]jC ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.nameuh*hchjF hhhj[ hNubh¨)}(hhh](h@)}(h/A string used for identification purposes only.h]h/A string used for identification purposes only.
}(hjg hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjE hKhjd hhubh@)}(hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.h]hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
}(hju hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjE hKhjd hhubeh}(h ]h"]h$]h&]h(]uh*h§hjF hhhj[ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej j j uh*h^hhhj hjE hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:/start() (paramiko.agent.AgentLocalProxy method)$paramiko.agent.AgentLocalProxy.starthNtauh*h-hj hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.starthNubh_)}(hhh](hd)}(hAgentLocalProxy.start()h](h)}(hstarth]hstart
}(hj§ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj£ hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentLocalProxy.starthNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj£ hhhjµ hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥je h¦AgentLocalProxy.startuh*hchj hhhjµ hNubh¨)}(hhh](h@)}(hStart the thread's activity.h]hStart the thread’s activity.
}(hjÊ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÇ hhubh@)}(hIt must be called at most once per thread object. It arranges for the
object's run() method to be invoked in a separate thread of control.h]hIt must be called at most once per thread object. It arranges for the
object’s run() method to be invoked in a separate thread of control.
}(hjØ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÇ hhubh@)}(hYThis method will raise a RuntimeError if called more than once on the
same thread object.h]hYThis method will raise a RuntimeError if called more than once on the
same thread object.
}(hjæ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjÇ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhjµ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhj hj hNubeh}(h ]h"]h$]h&]h(]uh*h§hj? hhhjT hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:*AgentProxyThread (class in paramiko.agent)paramiko.agent.AgentProxyThreadhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentProxyThread(agent)h](hj)}(hclass h]hclass
}(hj% hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihj! hhh_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThreadhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hj4 hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hj! hhhj3 hNubh)}(hAgentProxyThreadh]hAgentProxyThread
}(hjB hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj! hhhj3 hNubjÍ )}(hagenth]j )}(hagenth]hagent
}(hjT hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjP ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj! hhhj3 hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥hh¦jD uh*hchj hhhj3 hNubh¨)}(hhh](h@)}(h6Class in charge of communication between two channels.h]h6Class in charge of communication between two channels.
}(hjr hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThreadhKhjo hhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2daemon (paramiko.agent.AgentProxyThread attribute)¶miko.agent.AgentProxyThread.daemonhNtauh*h-hjo hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.daemonhNubh_)}(hhh](hd)}(hAgentProxyThread.daemonh]h)}(hdaemonh]hdaemon
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.daemonhNubah}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.daemonuh*hchj hhhj¥ hNubh¨)}(hhh](h@)}(hBA boolean value indicating whether this thread is a daemon thread.h]hBA boolean value indicating whether this thread is a daemon thread.
}(hj± hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj® hhubh@)}(hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.h]hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.
}(hj¿ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj® hhubh@)}(hJThe entire Python program exits when no alive non-daemon threads are
left.h]hJThe entire Python program exits when no alive non-daemon threads are
left.
}(hjÍ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj® hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj¥ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej jè j uh*h^hhhjo hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1ident (paramiko.agent.AgentProxyThread attribute)%paramiko.agent.AgentProxyThread.identhNtauh*h-hjo hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.identhNubh_)}(hhh](hd)}(hAgentProxyThread.identh]h)}(hidenth]hident
}(hjÿ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjû hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.identhNubah}(h ]jõ ah"]h$]jõ ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.identuh*hchjø hhhj
hNubh¨)}(hhh](h@)}(hDThread identifier of this thread or None if it has not been started.h]hDThread identifier of this thread or None if it has not been started.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj÷ hKhj hhubh@)}(hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.h]hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.
}(hj' hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj÷ hKhj hhubeh}(h ]h"]h$]h&]h(]uh*h§hjø hhhj
hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej jB j uh*h^hhhjo hj÷ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2isAlive() (paramiko.agent.AgentProxyThread method)'paramiko.agent.AgentProxyThread.isAlivehNtauh*h-hjo hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.isAlivehNubh_)}(hhh](hd)}(hAgentProxyThread.isAlive()h](h)}(hisAliveh]hisAlive
}(hjY hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjU hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.isAlivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjU hhhjg hNubeh}(h ]jO ah"]h$]jO ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.isAliveuh*hchjR hhhjg hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hj| hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjQ hKhjy hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjQ hKhjy hhubeh}(h ]h"]h$]h&]h(]uh*h§hjR hhhjg hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j¥ j uh*h^hhhjo hjQ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:3is_alive() (paramiko.agent.AgentProxyThread method)(paramiko.agent.AgentProxyThread.is_alivehNtauh*h-hjo hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.is_alivehNubh_)}(hhh](hd)}(hAgentProxyThread.is_alive()h](h)}(his_aliveh]his_alive
}(hj¼ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj¸ hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.is_alivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj¸ hhhjÊ hNubeh}(h ]j² ah"]h$]j² ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.is_aliveuh*hchjµ hhhjÊ hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hjß hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj´ hKhjÜ hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hjí hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj´ hKhjÜ hhubeh}(h ]h"]h$]h&]h(]uh*h§hjµ hhhjÊ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhjo hj´ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:/join() (paramiko.agent.AgentProxyThread method)$paramiko.agent.AgentProxyThread.joinhNtauh*h-hjo hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.joinhNubh_)}(hhh](hd)}(h#AgentProxyThread.join(timeout=None)h](h)}(hjoinh]hjoin
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.joinhNubjÍ )}(htimeout=Noneh]j )}(htimeout=Noneh]htimeout=None
}(hj2 hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj. ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj- hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.joinuh*hchj hhhj- hNubh¨)}(hhh](h@)}(h!Wait until the thread terminates.h]h!Wait until the thread terminates.
}(hjQ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjN hhubh@)}(h³This blocks the calling thread until the thread whose join() method is
called terminates -- either normally or through an unhandled exception
or until the optional timeout occurs.h]h´This blocks the calling thread until the thread whose join() method is
called terminates – either normally or through an unhandled exception
or until the optional timeout occurs.
}(hj_ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjN hhubh@)}(hXF When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened -- if the
thread is still alive, the join() call timed out.h]hXG When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened – if the
thread is still alive, the join() call timed out.
}(hjm hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjN hhubh@)}(hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.h]hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.
}(hj{ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hK
hjN hhubh@)}(h$A thread can be join()ed many times.h]h$A thread can be join()ed many times.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjN hhubh@)}(hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.h]hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjN hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj- hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j² j uh*h^hhhjo hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0name (paramiko.agent.AgentProxyThread attribute)$paramiko.agent.AgentProxyThread.namehNtauh*h-hjo hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.namehNubh_)}(hhh](hd)}(hAgentProxyThread.nameh]h)}(hnameh]hname
}(hjÉ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjÅ hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.namehNubah}(h ]j¿ ah"]h$]j¿ ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.nameuh*hchj hhhj× hNubh¨)}(hhh](h@)}(h/A string used for identification purposes only.h]h/A string used for identification purposes only.
}(hjã hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÁ hKhjà hhubh@)}(hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.h]hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
}(hjñ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÁ hKhjà hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj× hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej j j uh*h^hhhjo hjÁ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0start() (paramiko.agent.AgentProxyThread method)%paramiko.agent.AgentProxyThread.starthNtauh*h-hjo hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.starthNubh_)}(hhh](hd)}(hAgentProxyThread.start()h](h)}(hstarth]hstart
}(hj# hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentProxyThread.starthNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj1 hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jD h¦AgentProxyThread.startuh*hchj hhhj1 hNubh¨)}(hhh](h@)}(hStart the thread's activity.h]hStart the thread’s activity.
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjC hhubh@)}(hIt must be called at most once per thread object. It arranges for the
object's run() method to be invoked in a separate thread of control.h]hIt must be called at most once per thread object. It arranges for the
object’s run() method to be invoked in a separate thread of control.
}(hjT hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjC hhubh@)}(hYThis method will raise a RuntimeError if called more than once on the
same thread object.h]hYThis method will raise a RuntimeError if called more than once on the
same thread object.
}(hjb hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhjC hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj1 hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j} j uh*h^hhhjo hj hNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj3 hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:*AgentRemoteProxy (class in paramiko.agent)paramiko.agent.AgentRemoteProxyhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentRemoteProxy(agent, chan)h](hj)}(hclass h]hclass
}(hj¡ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihj hhh_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxyhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hj° hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hj hhhj¯ hNubh)}(hAgentRemoteProxyh]hAgentRemoteProxy
}(hj¾ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhj¯ hNubjÍ )}(hagent, chanh](j )}(hagenth]hagent
}(hjÐ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjÌ ubj )}(hchanh]hchan
}(hjÞ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjÌ ubeh}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj hhhj¯ hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥hh¦jÀ uh*hchj hhhj¯ hNubh¨)}(hhh](h@)}(h7Class to be used when wanting to ask a remote SSH Agenth]h7Class to be used when wanting to ask a remote SSH Agent
}(hjü hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?h_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxyhKhjù hhubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2daemon (paramiko.agent.AgentRemoteProxy attribute)¶miko.agent.AgentRemoteProxy.daemonhNtauh*h-hjù hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.daemonhNubh_)}(hhh](hd)}(hAgentRemoteProxy.daemonh]h)}(hdaemonh]hdaemon
}(hj! hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj hhhf/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.daemonhNubah}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.daemonuh*hchj hhhj/ hNubh¨)}(hhh](h@)}(hBA boolean value indicating whether this thread is a daemon thread.h]hBA boolean value indicating whether this thread is a daemon thread.
}(hj; hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj8 hhubh@)}(hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.h]hüThis must be set before start() is called, otherwise RuntimeError is
raised. Its initial value is inherited from the creating thread; the
main thread is not a daemon thread and therefore all threads created in
the main thread default to daemon = False.
}(hjI hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj8 hhubh@)}(hJThe entire Python program exits when no alive non-daemon threads are
left.h]hJThe entire Python program exits when no alive non-daemon threads are
left.
}(hjW hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj8 hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj/ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej jr j uh*h^hhhjù hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1ident (paramiko.agent.AgentRemoteProxy attribute)%paramiko.agent.AgentRemoteProxy.identhNtauh*h-hjù hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.identhNubh_)}(hhh](hd)}(hAgentRemoteProxy.identh]h)}(hidenth]hident
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj
hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.identhNubah}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.identuh*hchj hhhj hNubh¨)}(hhh](h@)}(hDThread identifier of this thread or None if it has not been started.h]hDThread identifier of this thread or None if it has not been started.
}(hj£ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj hhubh@)}(hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.h]hÌThis is a nonzero integer. See the get_ident() function. Thread
identifiers may be recycled when a thread exits and another thread is
created. The identifier is available even after the thread has exited.
}(hj± hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj hKhj hhubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej jÌ j uh*h^hhhjù hj hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2isAlive() (paramiko.agent.AgentRemoteProxy method)'paramiko.agent.AgentRemoteProxy.isAlivehNtauh*h-hjù hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.isAlivehNubh_)}(hhh](hd)}(hAgentRemoteProxy.isAlive()h](h)}(hisAliveh]hisAlive
}(hjã hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjß hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.isAlivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjß hhhjñ hNubeh}(h ]jÙ ah"]h$]jÙ ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.isAliveuh*hchjÜ hhhjñ hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÛ hKhj hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjÛ hKhj hhubeh}(h ]h"]h$]h&]h(]uh*h§hjÜ hhhjñ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j/ j uh*h^hhhjù hjÛ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:3is_alive() (paramiko.agent.AgentRemoteProxy method)(paramiko.agent.AgentRemoteProxy.is_alivehNtauh*h-hjù hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.is_alivehNubh_)}(hhh](hd)}(hAgentRemoteProxy.is_alive()h](h)}(his_aliveh]his_alive
}(hjF hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjB hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.is_alivehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjB hhhjT hNubeh}(h ]j< ah"]h$]j< ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.is_aliveuh*hchj? hhhjT hNubh¨)}(hhh](h@)}(h#Return whether the thread is alive.h]h#Return whether the thread is alive.
}(hji hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj> hKhjf hhubh@)}(h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.h]h¯This method returns True just before the run() method starts until just
after the run() method terminates. The module function enumerate()
returns a list of all alive threads.
}(hjw hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj> hKhjf hhubeh}(h ]h"]h$]h&]h(]uh*h§hj? hhhjT hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhjù hj> hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:/join() (paramiko.agent.AgentRemoteProxy method)$paramiko.agent.AgentRemoteProxy.joinhNtauh*h-hjù hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.joinhNubh_)}(hhh](hd)}(h#AgentRemoteProxy.join(timeout=None)h](h)}(hjoinh]hjoin
}(hj© hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj¥ hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.joinhNubjÍ )}(htimeout=Noneh]j )}(htimeout=Noneh]htimeout=None
}(hj¼ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj¸ ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj¥ hhhj· hNubeh}(h ]j ah"]h$]j ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.joinuh*hchj¢ hhhj· hNubh¨)}(hhh](h@)}(h!Wait until the thread terminates.h]h!Wait until the thread terminates.
}(hjÛ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hKhjØ hhubh@)}(h³This blocks the calling thread until the thread whose join() method is
called terminates -- either normally or through an unhandled exception
or until the optional timeout occurs.h]h´This blocks the calling thread until the thread whose join() method is
called terminates – either normally or through an unhandled exception
or until the optional timeout occurs.
}(hjé hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hKhjØ hhubh@)}(hXF When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened -- if the
thread is still alive, the join() call timed out.h]hXG When the timeout argument is present and not None, it should be a
floating point number specifying a timeout for the operation in seconds
(or fractions thereof). As join() always returns None, you must call
isAlive() after join() to decide whether a timeout happened – if the
thread is still alive, the join() call timed out.
}(hj÷ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hKhjØ hhubh@)}(hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.h]hgWhen the timeout argument is not present or None, the operation will
block until the thread terminates.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hK
hjØ hhubh@)}(h$A thread can be join()ed many times.h]h$A thread can be join()ed many times.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hKhjØ hhubh@)}(hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.h]hàjoin() raises a RuntimeError if an attempt is made to join the current
thread as that would cause a deadlock. It is also an error to join() a
thread before it has been started and attempts to do so raises the same
exception.
}(hj! hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¡ hKhjØ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj¢ hhhj· hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j< j uh*h^hhhjù hj¡ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0name (paramiko.agent.AgentRemoteProxy attribute)$paramiko.agent.AgentRemoteProxy.namehNtauh*h-hjù hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.namehNubh_)}(hhh](hd)}(hAgentRemoteProxy.nameh]h)}(hnameh]hname
}(hjS hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjO hhhd/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.namehNubah}(h ]jI ah"]h$]jI ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.nameuh*hchjL hhhja hNubh¨)}(hhh](h@)}(h/A string used for identification purposes only.h]h/A string used for identification purposes only.
}(hjm hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjK hKhjj hhubh@)}(hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.h]hmIt has no semantics. Multiple threads may be given the same name. The
initial name is set by the constructor.
}(hj{ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjK hKhjj hhubeh}(h ]h"]h$]h&]h(]uh*h§hjL hhhja hNubeh}(h ]h"]h$]h&]h(]jü pyjþ attributej j j uh*h^hhhjù hjK hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0start() (paramiko.agent.AgentRemoteProxy method)%paramiko.agent.AgentRemoteProxy.starthNtauh*h-hjù hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.starthNubh_)}(hhh](hd)}(hAgentRemoteProxy.start()h](h)}(hstarth]hstart
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj© hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRemoteProxy.starthNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj© hhhj» hNubeh}(h ]j£ ah"]h$]j£ ah&]h(]h¢h£paramiko.agenth¥jÀ h¦AgentRemoteProxy.startuh*hchj¦ hhhj» hNubh¨)}(hhh](h@)}(hStart the thread's activity.h]hStart the thread’s activity.
}(hjÐ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhjÍ hhubh@)}(hIt must be called at most once per thread object. It arranges for the
object's run() method to be invoked in a separate thread of control.h]hIt must be called at most once per thread object. It arranges for the
object’s run() method to be invoked in a separate thread of control.
}(hjÞ hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhjÍ hhubh@)}(hYThis method will raise a RuntimeError if called more than once on the
same thread object.h]hYThis method will raise a RuntimeError if called more than once on the
same thread object.
}(hjì hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj¥ hKhjÍ hhubeh}(h ]h"]h$]h&]h(]uh*h§hj¦ hhhj» hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j j uh*h^hhhjù hj¥ hNubeh}(h ]h"]h$]h&]h(]uh*h§hj hhhj¯ hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj j j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:-AgentRequestHandler (class in paramiko.agent)"paramiko.agent.AgentRequestHandlerhNtauh*h-hhhhhb/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRequestHandlerhNubh_)}(hhh](hd)}(hAgentRequestHandler(chanClient)h](hj)}(hclass h]hclass
}(hj, hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihj( hhhb/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentRequestHandlerhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hj; hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hj( hhhj: hNubh)}(hAgentRequestHandlerh]hAgentRequestHandler
}(hjI hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj( hhhj: hNubjÍ )}(h
chanClienth]j )}(h
chanClienth]h
chanClient
}(hj[ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hjW ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj( hhhj: hNubeh}(h ]j" ah"]h$]j" ah&]h(]h¢h£paramiko.agenth¥hh¦jK uh*hchj% hhhj: hNubh¨)}(hhh](h@)}(hEPrimary/default implementation of SSH agent forwarding functionality.h]hEPrimary/default implementation of SSH agent forwarding functionality.
}(hjy hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj$ hKhjv hhubh@)}(hSimply instantiate this class, handing it a live command-executing session
object, and it will handle forwarding any local SSH agent processes it
finds.h]hSimply instantiate this class, handing it a live command-executing session
object, and it will handle forwarding any local SSH agent processes it
finds.
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj$ hKhjv hhubh@)}(h
For example::h]hFor example:
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hj$ hKhjv hhubh
literal_block)}(hXK # Connect
client = SSHClient()
client.connect(host, port, username)
# Obtain session
session = client.get_transport().open_session()
# Forward local agent
AgentRequestHandler(session)
# Commands executed after this point will see the forwarded agent on
# the remote end.
session.exec_command("git clone https://my.git.repository/")h]hXK # Connect
client = SSHClient()
client.connect(host, port, username)
# Obtain session
session = client.get_transport().open_session()
# Forward local agent
AgentRequestHandler(session)
# Commands executed after this point will see the forwarded agent on
# the remote end.
session.exec_command("git clone https://my.git.repository/")
}hj¥ sbah}(h ]h"]h$]h&]h(]hyhzuh*j£ hj$ hK hjv hhubeh}(h ]h"]h$]h&]h(]uh*h§hj% hhhj: hNubeh}(h ]h"]h$]h&]h(]jü pyjþ classj jÀ j uh*h^hhhhhj$ hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:*AgentServerProxy (class in paramiko.agent)paramiko.agent.AgentServerProxyhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hAgentServerProxy(t)h](hj)}(hclass h]hclass
}(hjÖ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hihjÒ hhh_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxyhNubh})}(hparamiko.agent.h]hparamiko.agent.
}(hjå hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hjÒ hhhjä hNubh)}(hAgentServerProxyh]hAgentServerProxy
}(hjó hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjÒ hhhjä hNubjÍ )}(hth]j )}(hth]ht
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*j hj ubah}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjÒ hhhjä hNubeh}(h ]jÍ ah"]h$]jÍ ah&]h(]h¢h£paramiko.agenth¥hh¦jõ uh*hchjÏ hhhjä hNubh¨)}(hhh](j )}(hhh](j )}(hhh](j$ )}(h
Parametersh]h
Parameters
}(hj) hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj& hjä hK ubj4 )}(hhh]h@)}(hFt (Transport) -- Transport used for SSH Agent communication forwardingh](j8 )}(hj h]ht
}(hj> hhhNhNubah}(h ]h"]h$]h&]h(]h؈uh*j7 hj: ubh (
}(hj: hhhNhNubhµ)}(hhh]jx )}(h
.Transporth]h Transport
}(hjR hhhNhNubah}(h ]h"]h$]h&]h(]uh*jw hjO ubah}(h ]h"]h$]h&]h(] refdomainpyrefexplicitreftypej reftarget Transporth؈uh*h´hj: ubh)
}(hj: hhhNhNubh –
}(hj: hhhNhNubh5Transport used for SSH Agent communication forwarding
}(hj: hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj7 ubah}(h ]h"]h$]h&]h(]uh*j3 hj& ubeh}(h ]h"]h$]h&]h(]uh*j hj# ubj )}(hhh](j$ )}(hraisesh]hRaises
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj h_/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxyhK ubj4 )}(h0`.SSHException` -- mostly if we lost the agent
h]h@)}(h.`.SSHException` -- mostly if we lost the agenth](hµ)}(h`.SSHException`h]h»)}(hj¦ h]hSSHException
}(hj¨ hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj¤ ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainj² refexplicithÖj h×jõ h؈hٌSSHExceptionhÛhÜh݉uh*h´hNhNhj ubh – mostly if we lost the agent
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj hKhj ubah}(h ]h"]h$]h&]h(]uh*j3 hj ubeh}(h ]h"]h$]h&]h(]uh*j hj hKhj# hhubeh}(h ]h"]h$]h&]h(]uh*j hj hhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:0close() (paramiko.agent.AgentServerProxy method)%paramiko.agent.AgentServerProxy.closehNtauh*h-hj hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.closehNubh_)}(hhh](hd)}(hAgentServerProxy.close()h](h)}(hcloseh]hclose
}(hjô hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjð hhhe/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.closehNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjð hhhj hNubeh}(h ]jê ah"]h$]jê ah&]h(]h¢h£paramiko.agenth¥jõ h¦AgentServerProxy.closeuh*hchjí hhhj hNubh¨)}(hhh]h@)}(hQTerminate the agent, clean the files, close connections
Should be called manuallyh]hQTerminate the agent, clean the files, close connections
Should be called manually
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hjì hKhj hhubah}(h ]h"]h$]h&]h(]uh*h§hjí hhhj hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j2 j uh*h^hhhj hjì hNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:2get_env() (paramiko.agent.AgentServerProxy method)'paramiko.agent.AgentServerProxy.get_envhNtauh*h-hj hhhNhNubh_)}(hhh](hd)}(hAgentServerProxy.get_env()h](h)}(hget_envh]hget_env
}(hjH hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjD hhhg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.get_envhNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjD hhhjV hNubeh}(h ]j? ah"]h$]j? ah&]h(]h¢h£paramiko.agenth¥jõ h¦AgentServerProxy.get_envuh*hchjA hhhjV hNubh¨)}(hhh](h@)}(h'Helper for the environnement under unixh]h'Helper for the environnement under unix
}(hjk hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hg/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.get_envhKhjh hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj} hjV hK ubj4 )}(hhh]h@)}(h;a dict containing the SSH_AUTH_SOCK environnement variablesh](ha dict containing the
}(hj hhhNhNubh»)}(h``SSH_AUTH_SOCK``h]h
SSH_AUTH_SOCK
}(hj hhhNhNubah}(h ]h"]h$]h&]h(]uh*hºhj hhhNhNubh environnement variables
}(hj hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj ubah}(h ]h"]h$]h&]h(]uh*j3 hj} ubeh}(h ]h"]h$]h&]h(]uh*j hjz ubah}(h ]h"]h$]h&]h(]uh*j hjh hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hjA hhhjV hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj jÐ j uh*h^hhhj hNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:3get_keys() (paramiko.agent.AgentServerProxy method)(paramiko.agent.AgentServerProxy.get_keyshNtauh*h-hj hhhNhNubh_)}(hhh](hd)}(hAgentServerProxy.get_keys()h](h)}(hget_keysh]hget_keys
}(hjæ hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhjâ hhhh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.get_keyshNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hjâ hhhjô hNubeh}(h ]jÝ ah"]h$]jÝ ah&]h(]h¢h£paramiko.agenth¥jõ h¦AgentServerProxy.get_keysuh*hchjß hhhjô hNubh¨)}(hhh](h@)}(hReturn the list of keys available through the SSH agent, if any. If
no SSH agent was running (or it couldn't be contacted), an empty list
will be returned.h]hReturn the list of keys available through the SSH agent, if any. If
no SSH agent was running (or it couldn’t be contacted), an empty list
will be returned.
}(hj ! hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hh/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.AgentServerProxy.get_keyshKhj! hhubj )}(hhh]j )}(hhh](j$ )}(hReturnsh]hReturns
}(hj! hhhNhNubah}(h ]h"]h$]h&]h(]uh*j# hj! hjô hK ubj4 )}(hhh]h@)}(hHa tuple of AgentKey objects representing keys available on the
SSH agenth](ha tuple of
}(hj/! hhhNhNubhµ)}(h`.AgentKey`h]h»)}(hj9! h]hAgentKey
}(hj;! hhhNhNubah}(h ]h"](hƌpypy-objeh$]h&]h(]uh*hºhj7! ubah}(h ]h"]h$]h&]h(]reftypeobj refdomainjE! refexplicithÖj! h×jõ h؈hٌAgentKeyhÛhÜh݉uh*h´hNhNhj/! hhubh5 objects representing keys available on the
SSH agent
}(hj/! hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h?hj,! ubah}(h ]h"]h$]h&]h(]uh*j3 hj! ubeh}(h ]h"]h$]h&]h(]uh*j hj! ubah}(h ]h"]h$]h&]h(]uh*j hj! hhhNhNubeh}(h ]h"]h$]h&]h(]uh*h§hjß hhhjô hNubeh}(h ]h"]h$]h&]h(]jü pyjþ methodj j~! j uh*h^hhhj hNhNubeh}(h ]h"]h$]h&]h(]uh*h§hjÏ hhhjä hNubeh}(h ]h"]h$]h&]h(]jü jg jþ classj j! j uh*h^hhhhhNhNubh.)}(hhh]h}(h ]h"]h$]h&]h(]entries](h:1get_agent_connection() (in module paramiko.agent)#paramiko.agent.get_agent_connectionhNtauh*h-hhhhhNhNubh_)}(hhh](hd)}(hget_agent_connection()h](h})}(hparamiko.agent.h]hparamiko.agent.
}(hj¡! hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*h|hj! hhhc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.get_agent_connectionhNubh)}(hget_agent_connectionh]hget_agent_connection
}(hj°! hhhNhNubah}(h ]h"]h$]h&]h(]hyhzuh*hhj! hhhj¯! hNubjÍ )}(hhh]h}(h ]h"]h$]h&]h(]hyhzuh*jÌ hj! hhhj¯! hNubeh}(h ]j! ah"]h$]j! ah&]h(]h¢h£paramiko.agenth¥hh¦j²! uh*hchj! hhhj¯! hNubh¨)}(hhh](h@)}(hDReturns some SSH agent object, or None if none were found/supported.h]hDReturns some SSH agent object, or None if none were found/supported.
}(hjÑ! hhhNhNubah}(h ]h"]h$]h&]h(]uh*h?hc/home/jforcier/Code/oss/paramiko/paramiko/agent.py:docstring of paramiko.agent.get_agent_connectionhKhjÎ! hhubjx )}(hNew in version 2.10.h]h@)}(hNew in version 2.10.h]j )}(hNew in version 2.10.h]hNew in version 2.10.
}(hjè! hhhNhNubah}(h ]h"]jw ah$]h&]h(]uh*j hjä! ubah}(h ]h"]h$]h&]h(]translatableuh*h?hjà! hhhjß! hKubah}(h ]h"]h$]h&]h(]j£ versionaddedj¥ 2.10uh*jw hhhjß! hKhjÎ! ubeh}(h ]h"]h$]h&]h(]uh*h§hj! hhhj¯! hNubeh}(h ]h"]h$]h&]h(]jü pyjþ functionj j" j uh*h^hhhhhNhNubeh}(h ](module-paramiko.agent
ssh-agentseh"]h$]
ssh agentsah&]h(]uh*h hhhhhh+hKubah}(h ]h"]h$]h&]h(]sourceh+uh*hcurrent_sourceNcurrent_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampNsource_linkN
source_urlN
toc_backlinksentryfootnote_backlinksK
sectnum_xformKstrip_commentsNstrip_elements_with_classesN
strip_classesNreport_levelK
halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj?" error_encodingUTF-8error_encoding_error_handlerbackslashreplace
language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefix%
dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh+_destinationN
_config_files]file_insertion_enabledraw_enabledKline_length_limitM'pep_referencesNpep_base_url https://www.python.org/dev/peps/pep_file_url_templatepep-%04drfc_referencesNrfc_base_urlhttps://tools.ietf.org/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlongsmart_quotessmartquotes_localesNcharacter_level_inline_markupdoctitle_xform
docinfo_xformKsectsubtitle_xformembed_stylesheetcloak_email_addressesenvNgettext_compactubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j" j" h\h\j³ j³ j j jÊ jÊ jÆ jÆ j j j j j j jv jv j! j! j, j, jÚ jÚ j j j6
j6
j j j¦ j¦ jY jY j= j= j® j® j j jy jy jÓ jÓ j6 j6 j j jC jC j j j j j j jõ jõ jO jO j² j² j j j¿ j¿ j j j j j j j j jÙ jÙ j< j< j j jI jI j£ j£ j" j" jÍ jÍ jê jê j? j? jÝ jÝ j! j! u nametypes}(j" h\j³ j jÊ jÆ j j j jv j! j, jÚ j j6
j j¦ jY j= j® j jy jÓ j6 j jC j j j jõ jO j² j j¿ j j j j jÙ j< j jI j£ j" jÍ jê j? jÝ j! uh }(j" hj" h target)}(hhh]h}(h ]j" ah"]h$]h&]h(]ismoduh*j" hhhhhh>hKubh\hej³ j¹ j j jÊ jÏ jÆ jÌ j j! j j j j jv j{ j! j& j, j1 jÚ jß j j j6
j<
j j j¦ j« jY j^ j= jB j® j´ j j jy j jÓ jÙ j6 j< j j jC jI j j£ j j! j j jõ jû jO jU j² j¸ j j j¿ jÅ j j j j j j j j
jÙ jß j< jB j j¥ jI jO j£ j© j" j( jÍ jÒ jê jð j? jD jÝ jâ j! j! u
footnote_refs}
citation_refs}
autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK
id_countercollectionsCounter}
Rparse_messages]transform_messages]transformerNinclude_log]
decorationNhhub.