Hello community,

here is the log from the commit of package python-paramiko for openSUSE:Factory 
checked in at 2017-01-25 23:23:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-paramiko (Old)
 and      /work/SRC/openSUSE:Factory/.python-paramiko.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-paramiko"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-paramiko/python-paramiko.changes  
2016-10-10 16:24:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-paramiko.new/python-paramiko.changes     
2017-01-25 23:23:18.451029690 +0100
@@ -1,0 +2,25 @@
+Tue Dec 13 11:50:39 UTC 2016 - [email protected]
+
+- update to 2.1.1
+* A tweak to the original patch implementing gh#398 was not fully applied, 
+    causing calls to ~paramiko.client.SSHClient.invoke_shell to fail with
+    AttributeError. This has been fixed.
+* Fix the implementation of PKey.write_private_key_file (this method is only
+    publicly defined on subclasses; the fix was in the private real
+    implementation) so it passes the correct params to open()
+* Add an optional timeout parameter to Transport.start_clienti
+    <paramiko.transport.Transport.start_client> (and feed it the value of the
+    configured connection timeout when used within SSHClient
+    <paramiko.client.SSHClient>.)
+* Catch AssertionError thrown by Cryptography when attempting to load bad
+    ECDSA keys, turning it into an SSHException.
+* Add a missing .closed attribute (plus ._closed because reasons) to
+    ProxyCommand <paramiko.proxy.ProxyCommand>
+* Make the subprocess import in proxy.py lazy so users on platforms without
+    it (such as Google App Engine) can import Paramiko successfully
+* Fix incorrect docstring/param-list for Transport.auth_gssapi_keyex
+    <paramiko.transport.Transport.auth_gssapi_keyex> so it matches
+    the real signature.
+* Add an environment dict argument to Client.exec_command
+
+-------------------------------------------------------------------

Old:
----
  paramiko-2.0.2.tar.gz

New:
----
  paramiko-2.1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-paramiko.spec ++++++
--- /var/tmp/diff_new_pack.v1TCUY/_old  2017-01-25 23:23:18.858968176 +0100
+++ /var/tmp/diff_new_pack.v1TCUY/_new  2017-01-25 23:23:18.858968176 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           python-paramiko
-Version:        2.0.2
+Version:        2.1.1
 Release:        0
 Url:            http://www.paramiko.org/
 Summary:        SSH2 protocol library

++++++ paramiko-2.0.2.tar.gz -> paramiko-2.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/PKG-INFO new/paramiko-2.1.1/PKG-INFO
--- old/paramiko-2.0.2/PKG-INFO 2016-07-26 06:15:48.000000000 +0200
+++ new/paramiko-2.1.1/PKG-INFO 2016-12-13 01:13:02.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: paramiko
-Version: 2.0.2
+Version: 2.1.1
 Summary: SSH2 protocol library
 Home-page: https://github.com/paramiko/paramiko/
 Author: Jeff Forcier
@@ -15,9 +15,8 @@
         Required packages:
             Cryptography
         
-        To install the `in-development version
-        
<https://github.com/paramiko/paramiko/tarball/master#egg=paramiko-dev>`_, use
-        `pip install paramiko==dev`.
+        To install the development version, ``pip install -e
+        git+https://github.com/paramiko/paramiko/#egg=paramiko``.
         
 Platform: Posix; MacOS X; Windows
 Classifier: Development Status :: 5 - Production/Stable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/README.rst 
new/paramiko-2.1.1/README.rst
--- old/paramiko-2.0.2/README.rst       2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/README.rst       2016-12-13 01:09:49.000000000 +0100
@@ -36,7 +36,7 @@
 <https://www.gnu.org/copyleft/lesser.html>`_).
 
 The package and its API is fairly well documented in the ``docs`` folder that
-should have come with this archive.
+should have come with this repository.
 
 
 Installation
@@ -79,20 +79,21 @@
 ----
 
 Several demo scripts come with Paramiko to demonstrate how to use it.
-Probably the simplest demo of all is this::
+Probably the simplest demo is this::
 
-    import paramiko, base64
-    key = paramiko.RSAKey(data=base64.decodestring('AAA...'))
+    import base64
+    import paramiko
+    key = paramiko.RSAKey(data=base64.b64decode(b'AAA...'))
     client = paramiko.SSHClient()
     client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key)
     client.connect('ssh.example.com', username='strongbad', 
password='thecheat')
     stdin, stdout, stderr = client.exec_command('ls')
     for line in stdout:
-        print '... ' + line.strip('\n')
+        print('... ' + line.strip('\n'))
     client.close()
 
 This prints out the results of executing ``ls`` on a remote server. The host
-key 'AAA...' should of course be replaced by the actual base64 encoding of the
+key ``b'AAA...'`` should of course be replaced by the actual base64 encoding 
of the
 host key.  If you skip host key verification, the connection is not secure!
 
 The following example scripts (in demos/) get progressively more detailed:
@@ -126,7 +127,7 @@
 ---
 
 The demo scripts are probably the best example of how to use this package.
-There is also a lot of documentation, generated with Sphinx autodoc, in the
+Also a lot of documentation is generated by Sphinx autodoc, in the
 doc/ folder.
 
 There are also unit tests here::
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/demos/demo_server.py 
new/paramiko-2.1.1/demos/demo_server.py
--- old/paramiko-2.0.2/demos/demo_server.py     2016-07-25 20:58:23.000000000 
+0200
+++ new/paramiko-2.1.1/demos/demo_server.py     2016-12-06 05:06:58.000000000 
+0100
@@ -40,7 +40,7 @@
 
 
 class Server (paramiko.ServerInterface):
-    # 'data' is the output of base64.encodestring(str(key))
+    # 'data' is the output of base64.b64encode(key)
     # (using the "user_rsa_key" files)
     data = (b'AAAAB3NzaC1yc2EAAAABIwAAAIEAyO4it3fHlmGZWJaGrfeHOVY7RWO3P9M7hp'
             b'fAu7jJ2d7eothvfeuoRFtJwhUmZDluRdFyhFY/hFAh76PJKGAusIqIQKlkJxMC'
Binary files old/paramiko-2.0.2/docs/.doctrees/api/channel.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/channel.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/client.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/client.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/file.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/file.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/hostkeys.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/hostkeys.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/kex_gss.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/kex_gss.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/keys.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/keys.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/message.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/message.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/packet.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/packet.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/server.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/server.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/sftp.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/sftp.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/ssh_exception.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/ssh_exception.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/ssh_gss.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/ssh_gss.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/api/transport.doctree and 
new/paramiko-2.1.1/docs/.doctrees/api/transport.doctree differ
Binary files old/paramiko-2.0.2/docs/.doctrees/environment.pickle and 
new/paramiko-2.1.1/docs/.doctrees/environment.pickle differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/agent.html 
new/paramiko-2.1.1/docs/api/agent.html
--- old/paramiko-2.0.2/docs/api/agent.html      2016-07-26 00:04:40.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/agent.html      2016-12-09 19:35:38.000000000 
+0100
@@ -743,7 +743,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/agent.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/channel.html 
new/paramiko-2.1.1/docs/api/channel.html
--- old/paramiko-2.0.2/docs/api/channel.html    2016-07-26 06:14:39.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/channel.html    2016-12-13 01:13:00.000000000 
+0100
@@ -712,6 +712,34 @@
 </dd></dl>
 
 <dl class="method">
+<dt id="paramiko.channel.Channel.set_environment_variable">
+<code class="descname">set_environment_variable</code><span 
class="sig-paren">(</span><em>*args</em>, <em>**kwds</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.channel.Channel.set_environment_variable" title="Permalink to 
this definition">¶</a></dt>
+<dd><p>Set the value of an environment variable.</p>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">The server may reject this request depending on its <code 
class="docutils literal"><span class="pre">AcceptEnv</span></code>
+setting; such rejections will fail silently (which is common client
+practice for this particular request type). Make sure you
+understand your server&#8217;s configuration before using!</p>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
+<li><strong>name</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#str"; title="(in Python 
v2.6)"><em>str</em></a>) &#8211; name of the environment variable</li>
+<li><strong>value</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#str"; title="(in Python 
v2.6)"><em>str</em></a>) &#8211; value of the environment variable</li>
+</ul>
+</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td 
class="field-body"><p class="first last"><strong>SSHException</strong> &#8211; 
if the request was rejected or the channel was closed</p>
+</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
+<dl class="method">
 <dt id="paramiko.channel.Channel.set_name">
 <code class="descname">set_name</code><span 
class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a 
class="headerlink" href="#paramiko.channel.Channel.set_name" title="Permalink 
to this definition">¶</a></dt>
 <dd><p>Set a name for this channel.  Currently it&#8217;s only used to set the 
name
@@ -825,6 +853,33 @@
 <dd><p><a class="reference internal" 
href="transport.html#paramiko.transport.Transport" 
title="paramiko.transport.Transport"><code class="xref py py-obj docutils 
literal"><span class="pre">Transport</span></code></a> managing this channel</p>
 </dd></dl>
 
+<dl class="method">
+<dt id="paramiko.channel.Channel.update_environment">
+<code class="descname">update_environment</code><span 
class="sig-paren">(</span><em>*args</em>, <em>**kwds</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.channel.Channel.update_environment" title="Permalink to this 
definition">¶</a></dt>
+<dd><p>Updates this channel&#8217;s remote shell environment.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">This operation is additive - i.e. the current environment is 
not
+reset before the given environment variables are set.</p>
+</div>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">Servers may silently reject some environment variables; see the
+warning in <a class="reference internal" 
href="#paramiko.channel.Channel.set_environment_variable" 
title="paramiko.channel.Channel.set_environment_variable"><code class="xref py 
py-obj docutils literal"><span 
class="pre">set_environment_variable</span></code></a> for details.</p>
+</div>
+<table class="docutils field-list" frame="void" rules="none">
+<col class="field-name" />
+<col class="field-body" />
+<tbody valign="top">
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>environment</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/stdtypes.html#dict"; title="(in Python 
v2.6)"><em>dict</em></a>) &#8211; a dictionary containing the name and 
respective values to set</td>
+</tr>
+<tr class="field-even field"><th class="field-name">Raises:</th><td 
class="field-body"><strong>SSHException</strong> &#8211; if any of the 
environment variables was rejected by the server or
+the channel was closed</td>
+</tr>
+</tbody>
+</table>
+</dd></dl>
+
 </dd></dl>
 
 <dl class="class">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/client.html 
new/paramiko-2.1.1/docs/api/client.html
--- old/paramiko-2.0.2/docs/api/client.html     2016-07-26 06:14:39.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/client.html     2016-12-13 01:13:01.000000000 
+0100
@@ -280,7 +280,7 @@
 
 <dl class="method">
 <dt id="paramiko.client.SSHClient.exec_command">
-<code class="descname">exec_command</code><span 
class="sig-paren">(</span><em>command</em>, <em>bufsize=-1</em>, 
<em>timeout=None</em>, <em>get_pty=False</em><span class="sig-paren">)</span><a 
class="headerlink" href="#paramiko.client.SSHClient.exec_command" 
title="Permalink to this definition">¶</a></dt>
+<code class="descname">exec_command</code><span 
class="sig-paren">(</span><em>command</em>, <em>bufsize=-1</em>, 
<em>timeout=None</em>, <em>get_pty=False</em>, <em>environment=None</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.client.SSHClient.exec_command" title="Permalink to this 
definition">¶</a></dt>
 <dd><p>Execute a command on the SSH server.  A new <a class="reference 
internal" href="channel.html#paramiko.channel.Channel" 
title="paramiko.channel.Channel"><code class="xref py py-obj docutils 
literal"><span class="pre">Channel</span></code></a> is opened and
 the requested command is executed.  The command&#8217;s input and output
 streams are returned as Python <code class="docutils literal"><span 
class="pre">file</span></code>-like objects representing
@@ -294,6 +294,14 @@
 <li><strong>bufsize</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#int"; title="(in Python 
v2.6)"><em>int</em></a>) &#8211; interpreted the same way as by the built-in 
<code class="docutils literal"><span class="pre">file()</span></code> function 
in
 Python</li>
 <li><strong>timeout</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#int"; title="(in Python 
v2.6)"><em>int</em></a>) &#8211; set command&#8217;s channel timeout. See <code 
class="xref py py-obj docutils literal"><span 
class="pre">Channel.settimeout</span></code>.settimeout</li>
+<li><strong>environment</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/stdtypes.html#dict"; title="(in Python 
v2.6)"><em>dict</em></a>) &#8211; <p>a dict of shell environment variables, to 
be merged into the
+default environment that the remote command executes within.</p>
+<div class="admonition warning">
+<p class="first admonition-title">Warning</p>
+<p class="last">Servers may silently reject some environment variables; see the
+warning in <a class="reference internal" 
href="channel.html#paramiko.channel.Channel.set_environment_variable" 
title="paramiko.channel.Channel.set_environment_variable"><code class="xref py 
py-obj docutils literal"><span 
class="pre">Channel.set_environment_variable</span></code></a> for details.</p>
+</div>
+</li>
 </ul>
 </td>
 </tr>
@@ -310,7 +318,7 @@
 
 <dl class="method">
 <dt id="paramiko.client.SSHClient.invoke_shell">
-<code class="descname">invoke_shell</code><span 
class="sig-paren">(</span><em>term='vt100'</em>, <em>width=80</em>, 
<em>height=24</em>, <em>width_pixels=0</em>, <em>height_pixels=0</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.client.SSHClient.invoke_shell" title="Permalink to this 
definition">¶</a></dt>
+<code class="descname">invoke_shell</code><span 
class="sig-paren">(</span><em>term='vt100'</em>, <em>width=80</em>, 
<em>height=24</em>, <em>width_pixels=0</em>, <em>height_pixels=0</em>, 
<em>environment=None</em><span class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.client.SSHClient.invoke_shell" title="Permalink to this 
definition">¶</a></dt>
 <dd><p>Start an interactive shell session on the SSH server.  A new <a 
class="reference internal" href="channel.html#paramiko.channel.Channel" 
title="paramiko.channel.Channel"><code class="xref py py-obj docutils 
literal"><span class="pre">Channel</span></code></a>
 is opened and connected to a pseudo-terminal using the requested
 terminal type and size.</p>
@@ -324,6 +332,7 @@
 <li><strong>height</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#int"; title="(in Python 
v2.6)"><em>int</em></a>) &#8211; the height (in characters) of the terminal 
window</li>
 <li><strong>width_pixels</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#int"; title="(in Python 
v2.6)"><em>int</em></a>) &#8211; the width (in pixels) of the terminal 
window</li>
 <li><strong>height_pixels</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#int"; title="(in Python 
v2.6)"><em>int</em></a>) &#8211; the height (in pixels) of the terminal 
window</li>
+<li><strong>environment</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/stdtypes.html#dict"; title="(in Python 
v2.6)"><em>dict</em></a>) &#8211; the command&#8217;s environment</li>
 </ul>
 </td>
 </tr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/config.html 
new/paramiko-2.1.1/docs/api/config.html
--- old/paramiko-2.0.2/docs/api/config.html     2016-07-26 00:04:41.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/config.html     2016-12-13 01:08:25.000000000 
+0100
@@ -220,7 +220,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/config.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/kex_gss.html 
new/paramiko-2.1.1/docs/api/kex_gss.html
--- old/paramiko-2.0.2/docs/api/kex_gss.html    2016-07-26 00:04:41.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/kex_gss.html    2016-12-09 19:35:39.000000000 
+0100
@@ -249,7 +249,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/kex_gss.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/message.html 
new/paramiko-2.1.1/docs/api/message.html
--- old/paramiko-2.0.2/docs/api/message.html    2016-07-26 00:04:41.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/message.html    2016-12-09 19:35:39.000000000 
+0100
@@ -473,7 +473,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/message.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/pipe.html 
new/paramiko-2.1.1/docs/api/pipe.html
--- old/paramiko-2.0.2/docs/api/pipe.html       2016-07-26 00:04:41.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/pipe.html       2016-12-09 19:35:39.000000000 
+0100
@@ -162,7 +162,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/pipe.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/server.html 
new/paramiko-2.1.1/docs/api/server.html
--- old/paramiko-2.0.2/docs/api/server.html     2016-07-26 00:04:41.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/server.html     2016-12-09 19:35:39.000000000 
+0100
@@ -1009,7 +1009,7 @@
       
       |
       Powered by <a href="http://sphinx-doc.org/";>Sphinx 1.4.4</a>
-      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.8</a>
+      &amp; <a href="https://github.com/bitprophet/alabaster";>Alabaster 
0.7.9</a>
       
       |
       <a href="../_sources/api/server.txt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/api/transport.html 
new/paramiko-2.1.1/docs/api/transport.html
--- old/paramiko-2.0.2/docs/api/transport.html  2016-07-26 06:15:47.000000000 
+0200
+++ new/paramiko-2.1.1/docs/api/transport.html  2016-12-13 01:13:01.000000000 
+0100
@@ -214,31 +214,22 @@
 <dl class="method">
 <dt id="paramiko.transport.Transport.auth_gssapi_keyex">
 <code class="descname">auth_gssapi_keyex</code><span 
class="sig-paren">(</span><em>username</em><span class="sig-paren">)</span><a 
class="headerlink" href="#paramiko.transport.Transport.auth_gssapi_keyex" 
title="Permalink to this definition">¶</a></dt>
-<dd><p>Authenticate to the Server with GSS-API / SSPI if GSS-API Key Exchange
-was the used key exchange method.</p>
+<dd><p>Authenticate to the server with GSS-API/SSPI if GSS-API kex is in 
use.</p>
 <table class="docutils field-list" frame="void" rules="none">
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
-<li><strong>username</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#str"; title="(in Python 
v2.6)"><em>str</em></a>) &#8211; The username to authenticate as</li>
-<li><strong>gss_host</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#str"; title="(in Python 
v2.6)"><em>str</em></a>) &#8211; The target host</li>
-<li><strong>gss_deleg_creds</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#bool"; title="(in 
Python v2.6)"><em>bool</em></a>) &#8211; Delegate credentials or not</li>
-</ul>
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><p class="first"><strong>username</strong> (<a 
class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#str"; title="(in Python 
v2.6)"><em>str</em></a>) &#8211; The username to authenticate as.</p>
 </td>
 </tr>
-<tr class="field-even field"><th class="field-name">Returns:</th><td 
class="field-body"><p class="first">list of auth types permissible for the next 
stage of
+<tr class="field-even field"><th class="field-name">Returns:</th><td 
class="field-body"><p class="first">a <a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#list"; title="(in 
Python v2.6)"><code class="xref py py-obj docutils literal"><span 
class="pre">list</span></code></a> of auth types permissible for the next stage 
of
 authentication (normally empty)</p>
 </td>
 </tr>
-<tr class="field-odd field"><th class="field-name">Return type:</th><td 
class="field-body"><p class="first"><a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#list"; title="(in 
Python v2.6)">list</a></p>
-</td>
-</tr>
-<tr class="field-even field"><th class="field-name">Raises:</th><td 
class="field-body"><ul class="first last simple">
-<li><strong>BadAuthenticationType</strong> &#8211; if GSS-API Key Exchange was 
not performed
-(and no event was passed in)</li>
-<li><strong>AuthenticationException</strong> &#8211; if the authentication 
failed (and no
-event was passed in)</li>
+<tr class="field-odd field"><th class="field-name">Raises:</th><td 
class="field-body"><ul class="first last simple">
+<li><strong>BadAuthenticationType</strong> &#8211; if GSS-API Key Exchange was 
not performed (and no event was passed
+in)</li>
+<li><strong>AuthenticationException</strong> &#8211; if the authentication 
failed (and no event was passed in)</li>
 <li><strong>SSHException</strong> &#8211; if there was a network error</li>
 </ul>
 </td>
@@ -1132,7 +1123,7 @@
 
 <dl class="method">
 <dt id="paramiko.transport.Transport.start_client">
-<code class="descname">start_client</code><span 
class="sig-paren">(</span><em>event=None</em><span class="sig-paren">)</span><a 
class="headerlink" href="#paramiko.transport.Transport.start_client" 
title="Permalink to this definition">¶</a></dt>
+<code class="descname">start_client</code><span 
class="sig-paren">(</span><em>event=None</em>, <em>timeout=None</em><span 
class="sig-paren">)</span><a class="headerlink" 
href="#paramiko.transport.Transport.start_client" title="Permalink to this 
definition">¶</a></dt>
 <dd><p>Negotiate a new SSH2 session as a client.  This is the first step after
 creating a new <a class="reference internal" 
href="#paramiko.transport.Transport" title="paramiko.transport.Transport"><code 
class="xref py py-obj docutils literal"><span 
class="pre">Transport</span></code></a>.  A separate thread is created for 
protocol
 negotiation.</p>
@@ -1140,7 +1131,7 @@
 negotiation is done (successful or not), the given <code class="docutils 
literal"><span class="pre">Event</span></code> will
 be triggered.  On failure, <a class="reference internal" 
href="#paramiko.transport.Transport.is_active" 
title="paramiko.transport.Transport.is_active"><code class="xref py py-obj 
docutils literal"><span class="pre">is_active</span></code></a> will return 
<code class="docutils literal"><span class="pre">False</span></code>.</p>
 <p>(Since 1.4) If <code class="docutils literal"><span 
class="pre">event</span></code> is <code class="docutils literal"><span 
class="pre">None</span></code>, this method will not return until
-negotation is done.  On success, the method returns normally.
+negotiation is done.  On success, the method returns normally.
 Otherwise an SSHException is raised.</p>
 <p>After a successful negotiation, you will usually want to authenticate,
 calling <a class="reference internal" 
href="#paramiko.transport.Transport.auth_password" 
title="paramiko.transport.Transport.auth_password"><code class="xref py py-obj 
docutils literal"><span class="pre">auth_password</span></code></a> or
@@ -1159,10 +1150,15 @@
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><strong>event</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/threading.html#threading.Event"; 
title="(in Python v2.6)"><em>threading.Event</em></a>) &#8211; an event to 
trigger when negotiation is complete (optional)</td>
+<tr class="field-odd field"><th class="field-name">Parameters:</th><td 
class="field-body"><ul class="first simple">
+<li><strong>event</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/threading.html#threading.Event"; 
title="(in Python v2.6)"><em>threading.Event</em></a>) &#8211; an event to 
trigger when negotiation is complete (optional)</li>
+<li><strong>timeout</strong> (<a class="reference external" 
href="https://docs.python.org/2.6/library/functions.html#float"; title="(in 
Python v2.6)"><em>float</em></a>) &#8211; a timeout, in seconds, for SSH2 
session negotiation (optional)</li>
+</ul>
+</td>
 </tr>
-<tr class="field-even field"><th class="field-name">Raises:</th><td 
class="field-body"><strong>SSHException</strong> &#8211; if negotiation fails 
(and no <code class="docutils literal"><span class="pre">event</span></code> 
was passed
-in)</td>
+<tr class="field-even field"><th class="field-name">Raises:</th><td 
class="field-body"><p class="first last"><strong>SSHException</strong> &#8211; 
if negotiation fails (and no <code class="docutils literal"><span 
class="pre">event</span></code> was passed
+in)</p>
+</td>
 </tr>
 </tbody>
 </table>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/genindex.html 
new/paramiko-2.1.1/docs/genindex.html
--- old/paramiko-2.0.2/docs/genindex.html       2016-07-26 06:15:47.000000000 
+0200
+++ new/paramiko-2.1.1/docs/genindex.html       2016-12-13 01:13:01.000000000 
+0100
@@ -1913,6 +1913,10 @@
   </dt>
 
       
+  <dt><a 
href="api/channel.html#paramiko.channel.Channel.set_environment_variable">set_environment_variable()
 (paramiko.channel.Channel method)</a>
+  </dt>
+
+      
   <dt><a 
href="api/buffered_pipe.html#paramiko.buffered_pipe.BufferedPipe.set_event">set_event()
 (paramiko.buffered_pipe.BufferedPipe method)</a>
   </dt>
 
@@ -2233,12 +2237,16 @@
   </dt>
 
       
-  <dt><a 
href="api/transport.html#paramiko.transport.Transport.use_compression">use_compression()
 (paramiko.transport.Transport method)</a>
+  <dt><a 
href="api/channel.html#paramiko.channel.Channel.update_environment">update_environment()
 (paramiko.channel.Channel method)</a>
   </dt>
 
   </dl></td>
   <td style="width: 33%" valign="top"><dl>
       
+  <dt><a 
href="api/transport.html#paramiko.transport.Transport.use_compression">use_compression()
 (paramiko.transport.Transport method)</a>
+  </dt>
+
+      
   <dt><a href="api/sftp.html#paramiko.sftp_client.SFTPClient.utime">utime() 
(paramiko.sftp_client.SFTPClient method)</a>
   </dt>
 
Binary files old/paramiko-2.0.2/docs/objects.inv and 
new/paramiko-2.1.1/docs/objects.inv differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/docs/searchindex.js 
new/paramiko-2.1.1/docs/searchindex.js
--- old/paramiko-2.0.2/docs/searchindex.js      2016-07-26 06:15:47.000000000 
+0200
+++ new/paramiko-2.1.1/docs/searchindex.js      2016-12-13 01:13:01.000000000 
+0100
@@ -1 +1 @@
-Search.setIndex({envversion:49,filenames:["api/agent","api/buffered_pipe","api/channel","api/client","api/config","api/file","api/hostkeys","api/kex_gss","api/keys","api/message","api/packet","api/pipe","api/proxy","api/server","api/sftp","api/ssh_exception","api/ssh_gss","api/transport","index"],objects:{"paramiko.agent":{Agent:[0,1,1,""],AgentClientProxy:[0,1,1,""],AgentKey:[0,1,1,""],AgentLocalProxy:[0,1,1,""],AgentProxyThread:[0,1,1,""],AgentRemoteProxy:[0,1,1,""],AgentRequestHandler:[0,1,1,""],AgentServerProxy:[0,1,1,""]},"paramiko.agent.Agent":{close:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.agent.AgentClientProxy":{close:[0,2,1,""],connect:[0,2,1,""]},"paramiko.agent.AgentKey":{can_sign:[0,2,1,""],from_private_key:[0,2,1,""],from_private_key_file:[0,2,1,""],get_base64:[0,2,1,""],get_bits:[0,2,1,""],get_fingerprint:[0,2,1,""],verify_ssh_sig:[0,2,1,""],write_private_key:[0,2,1,""],write_private_key_file:[0,2,1,""]},"paramiko.agent.AgentLocalProxy":{daemon:[0,3,1,""],get_connection:[0,2,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentProxyThread":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentRemoteProxy":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentServerProxy":{close:[0,2,1,""],get_env:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.buffered_pipe":{BufferedPipe:[1,1,1,""],PipeTimeout:[1,4,1,""]},"paramiko.buffered_pipe.BufferedPipe":{"__len__":[1,2,1,""],"__weakref__":[1,3,1,""],close:[1,2,1,""],empty:[1,2,1,""],feed:[1,2,1,""],read:[1,2,1,""],read_ready:[1,2,1,""],set_event:[1,2,1,""]},"paramiko.buffered_pipe.PipeTimeout":{"__weakref__":[1,3,1,""]},"paramiko.channel":{Channel:[2,1,1,""],ChannelFile:[2,1,1,""],open_only:[2,5,1,""]},"paramiko.channel.Channel":{"__init__":[2,2,1,""],"__repr__":[2,2,1,""],active:[2,3,1,""],chanid:[2,3,1,""],close:[2,2,1,""],closed:[2,3,1,""],exec_command:[2,2,1,""],exit_status_ready:[2,2,1,""],fileno:[2,2,1,""],get_id:[2,2,1,""],get_name:[2,2,1,""],get_pty:[2,2,1,""],get_transport:[2,2,1,""],getpeername:[2,2,1,""],gettimeout:[2,2,1,""],invoke_shell:[2,2,1,""],invoke_subsystem:[2,2,1,""],makefile:[2,2,1,""],makefile_stderr:[2,2,1,""],recv:[2,2,1,""],recv_exit_status:[2,2,1,""],recv_ready:[2,2,1,""],recv_stderr:[2,2,1,""],recv_stderr_ready:[2,2,1,""],remote_chanid:[2,3,1,""],request_forward_agent:[2,2,1,""],request_x11:[2,2,1,""],resize_pty:[2,2,1,""],send:[2,2,1,""],send_exit_status:[2,2,1,""],send_ready:[2,2,1,""],send_stderr:[2,2,1,""],sendall:[2,2,1,""],sendall_stderr:[2,2,1,""],set_combine_stderr:[2,2,1,""],set_name:[2,2,1,""],setblocking:[2,2,1,""],settimeout:[2,2,1,""],shutdown:[2,2,1,""],shutdown_read:[2,2,1,""],shutdown_write:[2,2,1,""],transport:[2,3,1,""]},"paramiko.channel.ChannelFile":{"__repr__":[2,2,1,""]},"paramiko.client":{AutoAddPolicy:[3,1,1,""],MissingHostKeyPolicy:[3,1,1,""],RejectPolicy:[3,1,1,""],SSHClient:[3,1,1,""],WarningPolicy:[3,1,1,""]},"paramiko.client.MissingHostKeyPolicy":{"__weakref__":[3,3,1,""],missing_host_key:[3,2,1,""]},"paramiko.client.SSHClient":{"__init__":[3,2,1,""],close:[3,2,1,""],connect:[3,2,1,""],exec_command:[3,2,1,""],get_host_keys:[3,2,1,""],get_transport:[3,2,1,""],invoke_shell:[3,2,1,""],load_host_keys:[3,2,1,""],load_system_host_keys:[3,2,1,""],open_sftp:[3,2,1,""],save_host_keys:[3,2,1,""],set_log_channel:[3,2,1,""],set_missing_host_key_policy:[3,2,1,""]},"paramiko.config":{LazyFqdn:[4,1,1,""],SSHConfig:[4,1,1,""]},"paramiko.config.LazyFqdn":{"__weakref__":[4,3,1,""]},"paramiko.config.SSHConfig":{"__init__":[4,2,1,""],"__weakref__":[4,3,1,""],get_hostnames:[4,2,1,""],lookup:[4,2,1,""],parse:[4,2,1,""]},"paramiko.dsskey":{DSSKey:[8,1,1,""]},"paramiko.dsskey.DSSKey":{generate:[8,6,1,""]},"paramiko.ecdsakey":{ECDSAKey:[8,1,1,""]},"paramiko.ecdsakey.ECDSAKey":{generate:[8,7,1,""]},"paramiko.file":{BufferedFile:[5,1,1,""]},"paramiko.file.BufferedFile":{"__iter__":[5,2,1,""],close:[5,2,1,""],flush:[5,2,1,""],next:[5,2,1,""],read:[5,2,1,""],readable:[5,2,1,""],readinto:[5,2,1,""],readline:[5,2,1,""],readlines:[5,2,1,""],seek:[5,2,1,""],seekable:[5,2,1,""],tell:[5,2,1,""],writable:[5,2,1,""],write:[5,2,1,""],writelines:[5,2,1,""],xreadlines:[5,2,1,""]},"paramiko.hostkeys":{HostKeyEntry:[6,1,1,""],HostKeys:[6,1,1,""]},"paramiko.hostkeys.HostKeyEntry":{from_line:[6,7,1,""],to_line:[6,2,1,""]},"paramiko.hostkeys.HostKeys":{"__init__":[6,2,1,""],add:[6,2,1,""],check:[6,2,1,""],clear:[6,2,1,""],hash_host:[6,6,1,""],load:[6,2,1,""],lookup:[6,2,1,""],save:[6,2,1,""]},"paramiko.kex_gss":{KexGSSGex:[7,1,1,""],KexGSSGroup14:[7,1,1,""],KexGSSGroup1:[7,1,1,""],NullHostKey:[7,1,1,""]},"paramiko.kex_gss.KexGSSGex":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.KexGSSGroup1":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.NullHostKey":{"__weakref__":[7,3,1,""]},"paramiko.message":{Message:[9,1,1,""]},"paramiko.message.Message":{"__init__":[9,2,1,""],"__repr__":[9,2,1,""],"__str__":[9,2,1,""],"__weakref__":[9,3,1,""],add:[9,2,1,""],add_adaptive_int:[9,2,1,""],add_boolean:[9,2,1,""],add_byte:[9,2,1,""],add_bytes:[9,2,1,""],add_int64:[9,2,1,""],add_int:[9,2,1,""],add_list:[9,2,1,""],add_mpint:[9,2,1,""],add_string:[9,2,1,""],asbytes:[9,2,1,""],get_adaptive_int:[9,2,1,""],get_binary:[9,2,1,""],get_boolean:[9,2,1,""],get_byte:[9,2,1,""],get_bytes:[9,2,1,""],get_int64:[9,2,1,""],get_int:[9,2,1,""],get_list:[9,2,1,""],get_mpint:[9,2,1,""],get_remainder:[9,2,1,""],get_so_far:[9,2,1,""],get_string:[9,2,1,""],get_text:[9,2,1,""],rewind:[9,2,1,""]},"paramiko.packet":{Packetizer:[10,1,1,""]},"paramiko.packet.Packetizer":{"__weakref__":[10,3,1,""],complete_handshake:[10,2,1,""],handshake_timed_out:[10,2,1,""],need_rekey:[10,2,1,""],read_all:[10,2,1,""],read_message:[10,2,1,""],readline:[10,2,1,""],send_message:[10,2,1,""],set_inbound_cipher:[10,2,1,""],set_keepalive:[10,2,1,""],set_log:[10,2,1,""],set_outbound_cipher:[10,2,1,""],start_handshake:[10,2,1,""]},"paramiko.pipe":{WindowsPipe:[11,1,1,""],make_or_pipe:[11,5,1,""]},"paramiko.pipe.WindowsPipe":{"__weakref__":[11,3,1,""]},"paramiko.pkey":{PKey:[8,1,1,""]},"paramiko.pkey.PKey":{"__cmp__":[8,2,1,""],"__init__":[8,2,1,""],"__weakref__":[8,3,1,""],asbytes:[8,2,1,""],can_sign:[8,2,1,""],from_private_key:[8,7,1,""],from_private_key_file:[8,7,1,""],get_base64:[8,2,1,""],get_bits:[8,2,1,""],get_fingerprint:[8,2,1,""],get_name:[8,2,1,""],sign_ssh_data:[8,2,1,""],verify_ssh_sig:[8,2,1,""],write_private_key:[8,2,1,""],write_private_key_file:[8,2,1,""]},"paramiko.proxy":{ProxyCommand:[12,1,1,""]},"paramiko.proxy.ProxyCommand":{"__init__":[12,2,1,""],recv:[12,2,1,""],send:[12,2,1,""]},"paramiko.rsakey":{RSAKey:[8,1,1,""]},"paramiko.rsakey.RSAKey":{generate:[8,6,1,""]},"paramiko.server":{InteractiveQuery:[13,1,1,""],ServerInterface:[13,1,1,""],SubsystemHandler:[13,1,1,""]},"paramiko.server.InteractiveQuery":{"__init__":[13,2,1,""],"__weakref__":[13,3,1,""],add_prompt:[13,2,1,""]},"paramiko.server.ServerInterface":{"__weakref__":[13,3,1,""],cancel_port_forward_request:[13,2,1,""],check_auth_gssapi_keyex:[13,2,1,""],check_auth_gssapi_with_mic:[13,2,1,""],check_auth_interactive:[13,2,1,""],check_auth_interactive_response:[13,2,1,""],check_auth_none:[13,2,1,""],check_auth_password:[13,2,1,""],check_auth_publickey:[13,2,1,""],check_channel_direct_tcpip_request:[13,2,1,""],check_channel_env_request:[13,2,1,""],check_channel_exec_request:[13,2,1,""],check_channel_forward_agent_request:[13,2,1,""],check_channel_pty_request:[13,2,1,""],check_channel_request:[13,2,1,""],check_channel_shell_request:[13,2,1,""],check_channel_subsystem_request:[13,2,1,""],check_channel_window_change_request:[13,2,1,""],check_channel_x11_request:[13,2,1,""],check_global_request:[13,2,1,""],check_port_forward_request:[13,2,1,""],enable_auth_gssapi:[13,2,1,""],get_allowed_auths:[13,2,1,""]},"paramiko.server.SubsystemHandler":{"__init__":[13,2,1,""],finish_subsystem:[13,2,1,""],get_server:[13,2,1,""],start_subsystem:[13,2,1,""]},"paramiko.sftp_attr":{SFTPAttributes:[14,1,1,""]},"paramiko.sftp_attr.SFTPAttributes":{"__init__":[14,2,1,""],"__str__":[14,2,1,""],"__weakref__":[14,3,1,""],from_stat:[14,7,1,""]},"paramiko.sftp_client":{SFTP:[14,1,1,""],SFTPClient:[14,1,1,""]},"paramiko.sftp_client.SFTPClient":{"__init__":[14,2,1,""],chdir:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],file:[14,2,1,""],from_transport:[14,7,1,""],get:[14,2,1,""],get_channel:[14,2,1,""],getcwd:[14,2,1,""],getfo:[14,2,1,""],listdir:[14,2,1,""],listdir_attr:[14,2,1,""],listdir_iter:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],normalize:[14,2,1,""],open:[14,2,1,""],put:[14,2,1,""],putfo:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""],truncate:[14,2,1,""],unlink:[14,2,1,""],utime:[14,2,1,""]},"paramiko.sftp_file":{SFTPFile:[14,1,1,""]},"paramiko.sftp_file.SFTPFile":{check:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],flush:[14,2,1,""],gettimeout:[14,2,1,""],next:[14,2,1,""],prefetch:[14,2,1,""],read:[14,2,1,""],readable:[14,2,1,""],readinto:[14,2,1,""],readline:[14,2,1,""],readlines:[14,2,1,""],readv:[14,2,1,""],seekable:[14,2,1,""],set_pipelined:[14,2,1,""],setblocking:[14,2,1,""],settimeout:[14,2,1,""],stat:[14,2,1,""],tell:[14,2,1,""],truncate:[14,2,1,""],utime:[14,2,1,""],writable:[14,2,1,""],write:[14,2,1,""],writelines:[14,2,1,""],xreadlines:[14,2,1,""]},"paramiko.sftp_handle":{SFTPHandle:[14,1,1,""]},"paramiko.sftp_handle.SFTPHandle":{"__init__":[14,2,1,""],chattr:[14,2,1,""],close:[14,2,1,""],read:[14,2,1,""],stat:[14,2,1,""],write:[14,2,1,""]},"paramiko.sftp_server":{SFTPServer:[14,1,1,""]},"paramiko.sftp_server.SFTPServer":{"__init__":[14,2,1,""],convert_errno:[14,6,1,""],set_file_attr:[14,6,1,""]},"paramiko.sftp_si":{SFTPServerInterface:[14,1,1,""]},"paramiko.sftp_si.SFTPServerInterface":{"__init__":[14,2,1,""],"__weakref__":[14,3,1,""],canonicalize:[14,2,1,""],chattr:[14,2,1,""],list_folder:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],open:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],session_ended:[14,2,1,""],session_started:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""]},"paramiko.ssh_exception":{AuthenticationException:[15,4,1,""],BadAuthenticationType:[15,4,1,""],BadHostKeyException:[15,4,1,""],ChannelException:[15,4,1,""],NoValidConnectionsError:[15,4,1,""],PartialAuthentication:[15,4,1,""],PasswordRequiredException:[15,4,1,""],ProxyCommandFailure:[15,4,1,""],SSHException:[15,4,1,""]},"paramiko.ssh_exception.NoValidConnectionsError":{"__init__":[15,2,1,""]},"paramiko.ssh_exception.SSHException":{"__weakref__":[15,3,1,""]},"paramiko.ssh_gss":{"_SSH_GSSAPI":[16,1,1,""],"_SSH_GSSAuth":[16,1,1,""],"_SSH_SSPI":[16,1,1,""],GSSAuth:[16,5,1,""]},"paramiko.ssh_gss._SSH_GSSAPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.ssh_gss._SSH_GSSAuth":{"__init__":[16,2,1,""],"__weakref__":[16,3,1,""],set_service:[16,2,1,""],set_username:[16,2,1,""],ssh_check_mech:[16,2,1,""],ssh_gss_oids:[16,2,1,""]},"paramiko.ssh_gss._SSH_SSPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.transport":{SecurityOptions:[17,1,1,""],Transport:[17,1,1,""]},"paramiko.transport.SecurityOptions":{"__repr__":[17,2,1,""],ciphers:[17,3,1,""],compression:[17,3,1,""],digests:[17,3,1,""],kex:[17,3,1,""],key_types:[17,3,1,""]},"paramiko.transport.Transport":{"__init__":[17,2,1,""],"__repr__":[17,2,1,""],accept:[17,2,1,""],add_server_key:[17,2,1,""],atfork:[17,2,1,""],auth_gssapi_keyex:[17,2,1,""],auth_gssapi_with_mic:[17,2,1,""],auth_interactive:[17,2,1,""],auth_interactive_dumb:[17,2,1,""],auth_none:[17,2,1,""],auth_password:[17,2,1,""],auth_publickey:[17,2,1,""],cancel_port_forward:[17,2,1,""],close:[17,2,1,""],connect:[17,2,1,""],get_banner:[17,2,1,""],get_exception:[17,2,1,""],get_hexdump:[17,2,1,""],get_log_channel:[17,2,1,""],get_remote_server_key:[17,2,1,""],get_security_options:[17,2,1,""],get_server_key:[17,2,1,""],get_username:[17,2,1,""],getpeername:[17,2,1,""],global_request:[17,2,1,""],is_active:[17,2,1,""],is_authenticated:[17,2,1,""],load_server_moduli:[17,6,1,""],open_channel:[17,2,1,""],open_forward_agent_channel:[17,2,1,""],open_forwarded_tcpip_channel:[17,2,1,""],open_session:[17,2,1,""],open_sftp_client:[17,2,1,""],open_x11_channel:[17,2,1,""],renegotiate_keys:[17,2,1,""],request_port_forward:[17,2,1,""],send_ignore:[17,2,1,""],set_gss_host:[17,2,1,""],set_hexdump:[17,2,1,""],set_keepalive:[17,2,1,""],set_log_channel:[17,2,1,""],set_subsystem_handler:[17,2,1,""],start_client:[17,2,1,""],start_server:[17,2,1,""],use_compression:[17,2,1,""]},paramiko:{agent:[0,0,0,"-"],buffered_pipe:[1,0,0,"-"],channel:[2,0,0,"-"],client:[3,0,0,"-"],config:[4,0,0,"-"],dsskey:[8,0,0,"-"],ecdsakey:[8,0,0,"-"],file:[5,0,0,"-"],hostkeys:[6,0,0,"-"],kex_gss:[7,0,0,"-"],message:[9,0,0,"-"],packet:[10,0,0,"-"],pipe:[11,0,0,"-"],pkey:[8,0,0,"-"],proxy:[12,0,0,"-"],rsakey:[8,0,0,"-"],server:[13,0,0,"-"],sftp:[14,0,0,"-"],sftp_attr:[14,0,0,"-"],sftp_client:[14,0,0,"-"],sftp_file:[14,0,0,"-"],sftp_handle:[14,0,0,"-"],sftp_server:[14,0,0,"-"],sftp_si:[14,0,0,"-"],ssh_exception:[15,0,0,"-"],ssh_gss:[16,0,0,"-"],transport:[17,0,0,"-"]}},objnames:{"0":["py","module","Python
 module"],"1":["py","class","Python class"],"2":["py","method","Python 
method"],"3":["py","attribute","Python 
attribute"],"4":["py","exception","Python 
exception"],"5":["py","function","Python 
function"],"6":["py","staticmethod","Python static 
method"],"7":["py","classmethod","Python class 
method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:exception","5":"py:function","6":"py:staticmethod","7":"py:classmethod"},terms:{"2fac":17,"__cmp__":8,"__init__":[2,3,4,6,8,9,12,13,14,15,16,17],"__iter__":5,"__len__":1,"__repr__":[2,9,17],"__str__":[9,14],"__weakref__":[1,3,4,7,8,9,10,11,13,14,15,16],"_flag":[5,14],"_ssh_build_mic":16,"_ssh_gssapi":16,"_ssh_gssauth":16,"_ssh_sspi":16,"abstract":[0,8,14],"boolean":[0,9,13,16,17],"break":9,"byte":[0,1,2,5,6,8,9,10,12,14,16,17],"case":[2,3,13,14,15,17],"catch":[14,17],"char":[7,12],"class":[0,4,7],"default":[0,1,2,3,4,13,14,16,17],"else":[5,14],"float":[0,1,2,3,10,14,17],"function":[0,13],"import":[14,16],"int":[0,1,2,3,5,8,9,10,12,13,14,15,17],"long":[6,9,10,13,14,17],"new":[0,1,2,3,4,6,7,8,9,10,12,13,14,15,16,17],"null":[5,7,14],"public":[0,8,15,17,18],"return":[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17],"short":13,"static":[6,8,14,17],"switch":[10,17],"true":[0,1,2,3,5,6,8,10,13,14,16,17],"try":[3,15,17],"void":[16,17],"while":[2,3,14],abil:14,abl:2,about:[13,14],abov:13,abruptli:14,absent:[5,14],absolut:[5,14],abstraction:[2,11,14],accept:[2,3,13,14,16,17],access:[5,13,14,15],accord:4,account:13,accur:[5,14],achiev:17,across:[2,13,14,17],act:[11,13,18],activ:[0,2,14,17],actual:[2,5,11,13,14,16,17],add:[1,3,5,6,9,13,14,17],add_adaptive_int:9,add_boolean:9,add_byt:9,add_int64:9,add_int:9,add_list:9,add_mpint:9,add_prompt:13,add_server_kei:17,add_str:9,added:[3,14,17],addit:[14,17],address:[0,2,13,15,17],adequ:14,advers:17,affect:[2,11,14,17],after:[0,1,2,3,5,10,13,14,17],afterward:14,again:[2,13],against:3,agentclientproxi:0,agentforward:13,agentkei:0,agentlocalproxi:0,agentproxythread:0,agentremoteproxi:0,agentrequesthandl:0,agentserverproxi:0,agre:17,aka:[4,14],algorithm:[14,17],alia:[14,17],alias:14,aliv:[0,17],all:[0,1,2,4,5,6,8,10,13,14,15,17],alloc:[13,17],allow:[2,13,14,15,17,18],allow_ag:3,allowed_typ:15,almost:[13,17],alreadi:[9,14],also:[0,2,13,14,17],alter:14,altern:14,alwai:[0,2,10,13,14,17],amount:[1,2,10],ani:[0,1,2,3,5,6,9,13,14,17],anoth:[0,1,2,8,9,12],answer:[13,17],anticip:14,any:[3,6,14,17],anyth:[3,9,17],anytim:3,api:[],apolog:14,appear:3,append:[5,14],appli:4,applic:[2,3,13],applicat:2,appropri:14,approxim:[5,14],arbitrari:[9,14,17],area:18,aren:[9,13],arg:2,arguabl:6,argument:[0,1,2,3,5,12,13,14,17],around:[2,5,17],arrang:0,arriv:[1,2,13,17],asbyt:[8,9],asid:13,ask:[0,2,3,13,14,17],aspect:3,assign:[13,17],associ:[2,6,13,14],assum:[1,5,10,13,14,15],asymmetr:8,asynchron:17,asyncor:2,atfork:17,atim:14,attach:[2,17],attack:17,attemp:14,attempt:[0,1,2,3,10,13,14,15,16,17],attr:14,attribut:[14,15],autent:17,auth:[2,3,13,17],auth_cooki:[2,13],auth_failed:13,auth_gssapi_keyex:17,auth_gssapi_with_m:17,auth_interact:17,auth_interactive_dumb:17,auth_method:16,auth_non:17,auth_partially_successful:13,auth_password:17,auth_protocol:[2,13],auth_publickei:17,auth_successful:13,authent:[0,7,13],authenticationexcept:[3,15,17],authhandl:13,author:14,autoaddpolici:3,autom:17,automat:[0,2,3,17],avail:[0,13,16],avoid:[2,14],back:[2,3,5,13,17],background:[2,14],backward:14,bad:2,badauthenticationtyp:[15,17],badhostkeyexcept:[3,15],banner:[3,17],banner_timeout:3,base64:[0,8],base:[0,5,8,9,10,14,17],basestr:17,basic:[2,18],battl:17,becaus:[2,5,13,14,15,16,17],been:[0,1,2,5,9,13,14,17],befor:[0,1,2,6,8,10,14,17],begin:[4,9,13,14,17],behav:[2,14,17],behavior:[2,13,14,17],belief:17,below:13,besid:17,betti:14,between:[0,12],binari:[0,5,8,14],bind:17,bit:[0,2,8,9,14],bitset:14,bizarr:14,blindli:13,blob:[0,8],block:[0,1,2,10,13,14,17],block_engin:10,block_siz:[10,14],book:10,bool:[2,3,9,10,13,14,16,17],both:[2,4,11,13,14,17],bother:6,boundari:14,buff:[5,14],buffered_pip:1,bufferedfil:[5,14],bufferedpip:1,bufsiz:[2,3,5,14],bug:6,build:9,built:[2,3,14],byte_count:17,bytearrai:[5,14],cach:[3,13],call:[0,1,2,3,5,6,10,13,14,16,17],callabl:[14,17],callback:[10,14],can:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,17],can_sign:[0,8],cancel:[13,17],cancel_port_forward:17,cancel_port_forward_request:13,cannot:[8,14],canon:14,canonic:14,captur:15,care:[3,6,14],caus:[0,2,3,13,14,17],cc_file:13,cc_filenam:13,certain:17,certainli:13,cetain:13,challeng:13,chan:[0,2],chanclient:0,chang:[2,3,14,17],changelog:18,chanid:[2,13],channel:0,channelexcept:15,channelfil:2,chanremot:0,charact:[2,3,5,9,13,14],charg:0,chattr:14,chdir:14,check:[2,3,5,6,10,13,14,16,18],check_auth_gssapi_keyex:13,check_auth_gssapi_with_m:13,check_auth_interact:13,check_auth_interactive_respons:13,check_auth_non:[13,17],check_auth_password:[13,17],check_auth_publickei:[13,17],check_channel_direct_tcpip_request:13,check_channel_env_request:13,check_channel_exec_request:13,check_channel_forward_agent_request:13,check_channel_pty_request:13,check_channel_request:[2,13,17],check_channel_shell_request:13,check_channel_subsystem_request:13,check_channel_window_change_request:13,check_channel_x11_request:13,check_global_request:13,check_port_forward_request:13,check_rekei:10,child:17,chmod:14,chown:14,chunk:14,cipher:[10,17],claim:17,classmethod:[6,8,14],clean:[0,17],cleanli:[14,17],cleanup:[13,14],clear:[1,6,11,17],client:0,client_token:16,clone:0,close:[0,1,2,3,5,10,13,14,17],code:[2,13,14,15,17],collect:[2,3,14],com:[3,13,17],combin:[2,6,9,13],come:14,comma:[9,13],command:[0,2,3,12,13,15],command_lin:12,commandproxi:12,comment:6,common:[8,14],commonli:14,commun:[0,3,17],compar:8,compat:[0,8,14],complet:[2,10,13,14,17],complete_handshak:10,compress:[3,17],comput:[14,17],concaten:[9,14],concept:14,condit:[2,3],config:[4,15],confirm:14,conflict:3,confus:17,connect:[0,2,3,7,13,15,16,17],consid:[2,14],consist:14,constant:2,construct:17,constructor:[0,2,9,14,17],contact:0,contain:[0,2,4,5,8,9,13,14,16,17],content:[0,7,8,9,12,14,17,18],context:[2,3,12,14,16,17],contextu:13,continu:[2,13,14,17],control:[0,2,13,14,17,18],conveni:[2,4,14],convert:[14,17],convert_errno:14,cooki:[2,13],cookie:2,copi:14,core:[],correctli:[0,2,8],correspond:[8,13,14],corrupt:17,could:[2,3,9,10,14,16],couldn:0,count:[5,14],cover:18,creat:[0,2,3,4,6,8,9,12,13,14,16,17],creation:18,credentail:16,credenti:[3,7,13,15,16,17],credentials_deleg:16,criteria:17,cryptographi:8,current:[0,2,3,5,10,14,16,17],curv:8,custom:9,cycl:[13,14],daemon:0,danger:13,data:[0,1,2,5,6,8,10,13,14,17,18],databas:[3,17],deadlock:0,deal:9,debian:17,debug:[2,9,17],decid:[0,13,18],declar:4,decod:9,decompos:9,decor:2,decrypt:[0,8],default_max_packet_s:17,default_window_s:[2,17],defin:[1,3,4,7,8,9,10,11,13,14,15,16],deleg:[3,7,13,16,17],delet:14,deliveri:2,demand:17,deni:17,depend:14,deprec:[5,14],der:16,describ:[4,15],descript:14,descriptor:2,desctruct:14,desir:[2,5,14,16,17],desired_mech:16,dest:14,dest_addr:17,destin:[13,14,17],destroi:14,detail:[14,17,18],determin:[2,13,14,17],determinist:9,develop:13,dialog:17,dict:[0,4,6,14,15],dictionari:6,did:[14,15],didn:[13,14],differ:[8,14,15,17],diffi:7,difficult:17,digest:17,dimens:13,direct:[2,14,17,18],directli:[2,3,17],directori:14,disabl:[2,3,17],disallow:2,discover:3,disk:14,displai:13,dispos:2,disrupt:17,distribut:17,doc:14,docstr:15,document:[],doe:[1,2,5,9,13,14,17],doesn:[2,5,6,9,14,16,17],don:[2,6,9,13,14,17],done:[1,3,10,13,17,18],down:[2,9],download:14,dramat:14,driven:12,dss:[],dsskei:[0,8,17],due:[3,14,17],dumb:17,dumber:17,dump:17,dure:[6,10,13,17],each:[3,4,13,14,17],eas:17,easi:14,ecdsakei:8,echo:[13,17],effect:[2,17],effici:[2,14],either:[0,2,3,6,11,13,14,16,18],elaps:[1,2],els:[2,6,13,14,17],empti:[0,1,5,6,13,14,17],emul:[2,3,14],enabl:13,enable_auth_gssapi:13,encod:[5,9,14,16],encount:[5,14,15],encrypt:[0,8,17,18],end:[0,2,4,5,11,13,14,17],enough:2,ensur:2,enter:17,entir:[0,2,5,14],entri:[2,4,6,14],enumer:0,env:13,environ:13,environn:0,eof:[2,5,13,14],eoferror:[10,17],epoch:14,equal:8,equival:[2,6,8,9,14],errno:[14,15],error:[0,2,3,6,7,8,13,14,15,16,17],escap:14,especi:14,establish:[0,3],etc:[2,9,14,15,17],even:[0,5,14],event:[1,11,17],ever:[2,10,17],everi:10,exactli:[2,13,14],examin:3,exampl:[0,2,3,8,13,14,15,17],exceedingli:13,except:[0,1,2,3,5,6,7,14,15,17],exchang:[],exec_command:[0,2,3],exectu:2,execut:[0,2,3,10,12,13],exist:[0,2,3,6,8,14,17],exit:[0,2,13],exit_status_readi:2,expandus:6,expans:4,expect:[0,2,6,14,15,17,18],expected_kei:15,explan:15,explicit:[3,4],explicitli:14,expos:[9,15],express:[1,2],extend:14,extens:[9,13,14,17],extra:[13,17],facto:4,factor:14,factori:[0,8],fail:[2,3,5,13,15,16,17],failur:[3,13,14,15,17],fake:[0,2],fallback:17,fals:[0,1,2,3,5,6,8,10,13,14,16,17],famili:15,far:14,faster:2,featur:[9,14],fed:1,feed:1,feeder:1,fetch:[2,9,14,17],few:10,fewer:14,fget:[5,14],field:[14,17],file:[0,4],file_obj:[0,4,8],file_s:14,filenam:[0,3,6,8,13,14,17],fileno:2,filesystem:14,fill:[2,8,14],find:[0,2,3,6,14],fine:[4,14],fingerprint:[0,8],finish:[2,13,18],finish_subsystem:13,firewal:17,first:[2,4,5,14,17],fit:17,flag:[5,14],flag_binary:[5,14],flow:[2,18],flush:[2,5,14],folder:14,follow:[2,3,13,14,17,18],foo:14,forc:[5,14,17],forev:[1,13,17],fork:[12,17],form:[6,14,16,17],format:[0,4,6,8,9,14],forward:[0,2,13,17],forward_agent_handl:0,found:[0,3,6,14,15],fqdn:[4,16],fraction:0,from:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],from_lin:6,from_private_kei:[0,8],from_private_key_fil:[0,8],from_stat:14,from_transport:14,fseek:5,full:14,func:[2,14,17],further:[2,13],futur:[1,2,5,13,14],garbag:[2,3],gener:[1,2,4,8,13,14,15,16,17],gentoo:17,get:[2,3,14,16,17],get_adaptive_int:9,get_allowed_auth:[13,17],get_bann:17,get_base64:[0,8],get_binari:9,get_bit:[0,8],get_boolean:9,get_byt:9,get_channel:14,get_connect:0,get_env:0,get_except:17,get_fingerprint:[0,8],get_hexdump:17,get_host_kei:3,get_hostnam:4,get_id:[0,2,13],get_int64:9,get_int:9,get_kei:0,get_list:9,get_log_channel:17,get_mpint:9,get_nam:[2,8,17],get_pti:[2,3],get_remaind:9,get_remote_server_kei:17,get_security_opt:17,get_serv:13,get_server_kei:17,get_so_far:9,get_str:9,get_text:9,get_transport:[0,2,3],get_usernam:17,getcwd:14,getfo:14,getpeernam:[2,17],gettimeout:[2,14],gid:14,git:0,give:17,given:[0,1,2,3,4,6,8,13,14,15,16,17],global:[13,17],global_request:17,gmt:14,goe:14,good:[3,13,14,17],got_kei:15,grant:13,greater:14,group14:7,group:[7,14,17],gss:[],gss_auth:[3,17],gss_authent:13,gss_deleg_cr:[3,16,17],gss_host:[3,17],gss_kex:[3,16,17],gssapi:[13,16,17],gssauth:16,gssexception:16,guarante:15,habit:2,had:[9,17],half:17,halv:2,hand:0,handi:14,handl:0,handler:[2,13,14,17],handshak:10,handshake_timed_out:10,hang:[2,3,14],happen:[0,5,17],hasattr:14,hash:[6,14,17],hash_algorithm:14,hash_host:6,hasn:2,have:[1,2,5,6,9,13,14,17,18],haven:[9,14,17],hazmat:8,height:[2,3,13],height_pixel:[2,3],held:0,hellman:7,helper:[0,14],here:13,hex:17,hexadecim:2,hexdump:17,high:[3,18],hint:14,hit:[5,14,17],home:14,hook:13,host:[0,4],hostkei:[3,6,17],hostkeyentri:6,hostnam:[3,4,6,15,16,17],how:[2,9,12,14,18],howev:14,http:[0,13],hundr:2,id_dsa:3,id_ecdsa:3,id_rsa:3,idea:[5,13,14],ident:[0,2,9,14],identic:[5,14],identif:0,identifi:[0,13],ignor:[5,14,17],immedi:[1,2,5,14,17],implement:[0,7,9],impli:[14,15],importerror:16,imposs:11,improv:14,inbound:10,includ:[5,6,13,14,17,18],incom:[2,7,17],incompat:0,incomplet:[5,14],incorrect:17,increment:14,indefinit:[2,13],independ:2,indic:[0,13,14,17],indicat:1,indistinguish:2,individu:[6,14],infinit:9,info:[14,17,18],inform:[4,13,14,17],inherit:0,initi:[0,16],initial:[2,16],input:[3,5,12,14],instanc:[2,3,8,12,14,15,17],instanti:0,instantli:2,instead:[3,5,12,14],instruct:[13,17],integ:[0,9,14],intend:[5,14],interact:[2,3,13,14,17],interactivequeri:13,interest:18,interfac:[0,2,3,5,12,13,14],intern:[5,14,15],internet:14,interpret:[2,3,13],interv:[10,17],invalid:[0,8],invok:[0,2,3,13],invoke_shel:[2,3],invoke_subsystem:2,ioerror:[0,3,5,6,8,14],ip_address:13,ipv4:15,irrit:2,is_act:[13,17],is_al:0,is_authent:17,isaliv:0,isn:[2,3,13,15,17],issu:14,item:[9,13],iter:[5,14],itself:[5,14],januari:14,join:0,judg:[0,8],junk:17,just:[0,6,9,13,14,16,17],keep:[10,17],keepal:[10,17],kei:[0,4],kept:[5,14,17],kerbero:[3,13,16,17],kex:17,kex_gss:[7,13],kexgssgex:7,kexgssgroup14:7,kexgssgroup1:7,key_filenam:3,key_typ:17,keyboard:[13,17],keyex:16,keytyp:6,keyword:[14,17],kind:[2,3,13,17,18],know:17,knowledg:2,known:[3,6,9,13,14,17],krb5:[13,16],krb5_kuserok:13,krb5_princip:13,kwarg:[2,14,17],kwd:2,larg:[2,10,14,17],larger:2,last:[2,3,14,17],latenc:14,later:[8,14,17],latter:13,launch:0,lazyfqdn:4,lead:6,least:[1,2,10],left:[0,3],len:[5,14,17],length:[1,2,5,9,14,16],less:[2,5,14],level:[2,3,9,11,14,17,18],librari:13,like:[0,2,3,4,5,6,8,11,12,13,14,15,17,18],line:[5,6,10,14,15],lineno:6,link:[14,17],linux:13,list:[0,1,3,4,5,7,8,9,10,11,13,14,15,16,17],list_fold:14,listdir:14,listdir_attr:14,listdir_it:14,listen:[13,17],liter:4,littl:14,live:[0,17],load:[3,6,13,17],load_host_kei:3,load_server_moduli:17,load_system_host_kei:3,local:[0,2,3,13,14,17],localpath:14,locat:17,lock:10,log:[3,10,13,17],logfil:2,logic:[13,15],login:16,longer:[2,17],longnam:14,look:[4,6],look_for_kei:3,lookup:[4,6],loop:13,lost:0,low:9,lower:3,lowercas:4,lstat:14,mac_engin:10,mac_kei:10,mac_siz:10,machin:[0,12],machineri:14,made:[0,2,3,4,8,13,14,15,17],magic:[0,2,8],mai:[0,1,2,3,5,9,11,12,13,14,15,17,18],main:[0,18],maintain:18,make:[2,11,12,13,14,17],make_or_pip:11,makefil:2,makefile_stderr:2,malici:14,man:[4,13],manag:[2,3,12,14,17],mangl:10,mani:[0,2,7,12,14,17],manipul:3,manual:0,map:14,mask:14,match:[4,5,14,15,18],max:[14,17],max_packet_s:[14,17],maximum:[1,2,5,14],md5:[0,8,14],mean:[1,2,14],meant:[2,14,17],mechan:[3,16],memor:2,merg:[3,6],messag:[0,7],method:[0,1,2,3,6,7,8,9,13,14,16,17],mic:[16,17],mic_token:16,microsoft:16,might:[13,14,17],mimic:14,mimick:14,mirror:14,misguid:17,miss:[3,14],missing_host_kei:3,missinghostkeypolici:3,mit:[2,16],mix:[5,14],mkdir:14,mode:[2,5,7,13,14,16,17],modif:14,modifi:[3,14,17],modul:[0,2,7,14,16,17],moduli:17,more:[0,1,2,4,6,13,14,15,17,18],most:[0,3,5,14,15],mostli:[0,2,14],move:[5,14],movement:5,mp3:13,mp3handler:13,mpint:9,msg:[0,8,13],mtime:14,much:[2,13,14],multi:17,multipl:[0,3,6,13,14,15,17],multiplex:17,must:[0,2,3,6,11,13,14,17],name:[0,2,3,5,6,8,13,14,16,17],nat:17,nbyte:[1,2],nearli:11,necessari:[0,2,8,10,14],need:[0,1,2,9,10,12,13,15,17,18],need_rekei:10,needrekeyexcept:10,neg:[5,14,17],negot:17,negoti:[6,10,14,15,16,17,18],network:[2,17],never:[2,17],newli:14,newlin:[5,6,14],newpath:14,next:[5,7,9,14,17],nois:17,non:[0,2,5,8,9,14,16],none:[0,1,2,3,4,5,6,8,9,13,14,15,16,17],nonneg:[1,2],nonzero:0,normal:[0,1,2,4,9,11,14,15,17],normpath:14,notat:14,note:[2,13,14,16],noth:[0,2,5,8,13,14],notic:[2,13],notimplementederror:16,novalidconnectionserror:15,now:13,nullhostkei:7,number:[0,1,2,5,8,9,10,13,14,16,17],numer:14,o_append:14,o_creat:14,o_excl:14,o_rdonly:14,o_rdwr:14,o_trunc:14,o_wronly:14,obei:[1,14],obj:[9,14],object:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18],obscur:17,obtain:[0,4],obviou:14,occasion:14,occur:[0,2,3,5,7,14],octal:14,off:[10,14,17],offset:[5,14],often:[3,17],oid:16,okai:[5,10,13,14],old:3,oldpath:14,omit:[2,5,14],onc:[0,1,2,13,14,17],once:[14,18],one:14,onli:[0,2,3,4,5,9,11,13,14,15,16,17],only:[2,3,8,10,14,17],open:[0,2,3,5,13,14,15,17],open_channel:17,open_failed_administratively_prohibited:13,open_failed_connect_failed:13,open_failed_resource_shortage:13,open_failed_unknown_channel_type:13,open_forward_agent_channel:17,open_forwarded_tcpip_channel:17,open_onli:2,open_sess:[0,17],open_sftp:3,open_sftp_cli:17,open_succeeded:13,open_x11_channel:[13,17],openssh:[2,3,4,6,14,17],oper:[0,1,2,5,14,17],option:[0,1,2,3,4,5,6,8,13,14,17],order:[3,6,14,17],organ:18,origin:[6,13,14,17],origin_addr:17,origin_port:17,oserror:14,other:0,otherwis:[0,1,2,6,8,13,14,16,17],out:[0,1,5,9,10,14],outbound:[2,10],outgo:2,output:[2,3,12,15],outsid:14,over:[2,5,14,17,18],overal:14,overrid:[3,13,14,17],overridden:14,overwrit:13,own:[5,13],owner:14,ownership:14,packet:7,page:[4,13],pair:[0,6],paket:7,pam:17,param:[2,14],paramet:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17],paramiko:[0,4,7,9,11,13],pars:[4,6,7,9],parse_next:7,part:[0,1,2,8,17],partial:[2,14,15,17],partialauthent:15,particular:2,partit:14,pass:[2,3,8,9,10,12,13,14,17,18],password:[0,3,8,13,15,17,18],passwordrequiredexcept:[0,8,15],past:14,path:[6,13,14,17],pathnam:14,pattern:4,paus:17,payload:17,pend:[2,10,14],peopl:[2,9],per:[0,14],perform:[2,3,13,14,16,17],period:[1,2],permiss:[14,17],permit:17,peroid:17,pick:[13,17],pipelin:14,pipetimeout:1,pixel:[2,3,13],pixelheight:13,pixelwidth:13,pkei:[0,3,6,8,13,15,17],place:13,plain:[3,17],plattform:13,pleas:18,plu:3,point:0,polici:3,poll:2,popen:12,port:[0,2,3,4,13,15,17],posit:[5,9,14],posix:[3,4,6,14,17],possibl:[2,5,6,10,12,13,14,15,17],practic:3,pre:[3,14],precis:9,predat:[5,14],prefer:[13,17],prefetch:14,prematur:17,presenc:14,presens:14,present:[0,2,3,5,14,15],preserv:6,pretti:17,previou:[2,13,17],previous:[2,3,13,14,17],primari:[0,13],primarili:[2,4,14],prime:17,primit:8,princip:13,print:17,prior:[1,2],prioriti:3,privat:[0,3,8,15,17,18],probabl:[3,13,14],problem:2,proce:2,process:[0,2,4,10,13,17],produc:[5,14],program:[0,12],progress_func:8,project:18,prompt:[13,17],prompt_list:17,protocol:[0,13],provid:[2,3,4,7,13,14,15,16,18],proxi:[0,12,14,15],proxycommandfailur:15,pseudo:[2,3,13,16],psuedo:13,pty:[2,13],ptype:7,publickei:[13,15],purpos:0,put:14,putfo:14,pycrypto:[],python:[0,2,3,5,8,9,10,13,14,16,18],queri:[4,13],question:[13,17],queu:2,queue:[2,17],quickli:14,race:3,rais:[0,1,2,3,5,6,8,10,14,15,16,17],random:[2,5,14,17],rare:17,rather:17,raw:9,reach:[1,5,10,14],read:[0,1,2,3,4,5,6,8,10,11,12,14,17],read_ahead:14,read_al:10,read_messag:10,read_readi:1,readabl:[5,11,14],readfil:14,readi:[1,2],readinto:[5,14],readlin:[5,10,14],readlink:14,readv:14,real:[2,11,15],realli:[2,9,14],realpath:14,reason:[13,15],receiv:[1,2,3,12,16,17,18],recent:17,recogn:[0,8,17],recommended:2,recv:[2,12,17],recv_exit_statu:2,recv_readi:2,recv_stderr:2,recv_stderr_readi:2,recv_token:16,recycl:0,refer:[1,3,4,7,8,9,10,11,13,14,15,16,17],reflect:2,refus:[13,17],regener:9,regist:13,regular:12,reject:[2,3,13,17],rejectpolici:3,rekei:10,rel:[0,5,8,14],reli:3,remain:[2,5,9,14],remaind:14,remot:[0,2,3,13,14,17,18],remote_chanid:2,remotepath:14,remov:[6,14],renam:14,renegoti:17,renegotiate_kei:17,replac:[2,3,6],report:13,repositori:0,repres:[0,1,2,3,7,8,14,15,17],represent:[2,3,4,6,8,9,14,17],request:[0,2,3,4,12,13,14,17,18],request_forward_ag:[0,2],request_port_forward:17,request_x11:2,requir:[2,3,7,13,14,17],reset:10,resiz:[2,13],resize_pti:2,resolut:15,resolv:14,respect:14,respond:[13,17],respons:[2,13,14,17,18],restrict:14,result:[1,2,13,14],retreiv:0,retri:15,retriev:[2,13,14],reus:2,reusabl:5,reveal:[0,8,14],rewind:9,rfc:[2,7,16],rich:14,right:2,rmdir:14,round:[5,14],roundtrip:14,rout:13,rsa:[],rsakei:[0,8,17],rsync:14,rtype:9,rule:4,run:[0,2,3,12,13],runtimeerror:0,safe:17,sai:[7,17],sake:14,salt:6,same:[0,2,3,13,14,15,17],sampl:17,save:[3,6,16,17],save_client_cr:16,save_host_kei:3,saver:14,screen:[2,13],screen_numb:[2,13],sdctr:10,search:3,second:[0,1,2,3,10,14,17],secp256r1:8,secret:[0,8],section:[4,7,14],secur:[0,2,8,14,17],securityopt:17,see:[0,3,13,14,15,16,17,18],seek:[5,14],seekabl:[5,14],segment:14,select:[2,11],self:[5,14],semant:[0,1,2],send:[2,6,12,13,17,18],send_exit_statu:2,send_ignor:17,send_messag:10,send_readi:2,send_stderr:2,sendal:2,sendall_stderr:2,sens:[2,13],sent:[2,12,13,17],separ:[0,1,4,5,9,13,14,17],seq:9,sequenc:[5,9,14,16],seri:[13,14],serv:14,server:[0,7],server_addr:17,server_port:17,serverinterfac:[2,13,14,17],servic:[13,16],session:[0,2,3,13,14,16,17,18],session_end:14,session_id:16,session_start:14,set:[0,1,2,3,4,5,10,11,13,14,16,17],set_combine_stderr:2,set_ev:1,set_file_attr:14,set_gss_host:17,set_hexdump:17,set_inbound_ciph:10,set_keepal:[10,17],set_log:10,set_log_channel:[3,17],set_missing_host_key_polici:3,set_nam:2,set_outbound_ciph:10,set_pipelin:14,set_servic:16,set_subsystem_handl:[13,14,17],set_usernam:16,setblock:[2,14],setter:[16,17],settimeout:[2,3,14,17],setup:14,sftp:13,sftp_:14,sftp_attr:14,sftp_client:14,sftp_eof:14,sftp_file:14,sftp_handl:14,sftp_no_such_file:14,sftp_ok:14,sftp_permission_denied:14,sftp_server:14,sftp_si:14,sftpattribut:14,sftpclient:[3,14,17],sftpfile:14,sftphandl:14,sftpserver:14,sftpserverinterfac:14,sha1:14,sha:14,share:[16,17],shell:[2,3,13],shortcut:[14,17],shorter:12,should:[0,2,3,4,6,8,10,12,13,14,17],shouldn:[2,13],show:2,shrink:14,shut:2,shutdown:[2,3],shutdown_read:2,shutdown_writ:2,side:[0,2,13,14,17,18],sign:[0,8,17],sign_ssh_data:8,signal:10,signatur:[0,2,8,13,18],signifi:14,signific:[0,8],signtatur:13,similar:[13,14],similarli:2,simpl:17,simpler:[5,17],simpli:[0,2,3,17],simul:2,sinc:[4,5,14,17],singl:[2,6,9,13,14,15,16,17],single_connect:[2,13],site:18,situat:[2,3,14,17],size:[3,5,12,14,17],sizehint:[5,14],slack:14,sleep:13,slightli:2,small:[2,13],sock:[3,14,17],socket:[0,1,2,3,10,11,12,14,15,17,18],some:[2,3,5,9,13,14,15,17],someth:[13,14,17],sometim:17,sort:2,sourc:[14,17],space:2,speak:0,special:14,specif:[3,4,13,14,15,17],specifi:[0,1,2,5,13,14,15,16,17],speed:14,split:6,src_addr:17,ssh2:[2,8,9,15,16,17],ssh_accept_sec_context:16,ssh_auth_sock:0,ssh_check_mech:16,ssh_check_mic:16,ssh_config:4,ssh_except:15,ssh_fxp_readdir:14,ssh_get_mic:16,ssh_gss:[13,16],ssh_gss_oid:16,ssh_init_sec_context:16,sshclient:[0,3,18],sshconfig:4,sshexception:[0,2,3,8,10,14,15,16,17],sspi:[7,16,17],st_atim:14,st_gid:14,st_mode:14,st_mtime:14,st_size:14,st_uid:14,stage:17,stall:2,standard:[4,12,14,17],start:[0,3,7,10,13,14,17,18],start_client:[17,18],start_handshak:10,start_kex:7,start_serv:[17,18],start_subsystem:13,stat:14,state:[6,13],statist:14,statu:[2,10],stderr:[2,3,13],stdin:[2,3,13],stdio:[5,14],stdout:[2,3,13,17],step:17,still:[0,13,17],stop:[2,14,17],stopiter:[5,14],store:[0,4,6,8,14,15,16,17],str:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],stream:[2,3,5,9,17],string:[0,1,2,4,5,6,8,9,12,13,14,16,17],structur:[3,14],style:[3,5,6,14],sub:17,subclass:[0,2,3,8,13,14,15,17],submethod:[13,17],subprocess:12,subsequ:[2,17],substitut:4,subsystem:[2,13,14,17],subsystemhandl:[13,14,17],subsytem:13,succe:[0,2,13,14,17],succeed:15,success:[13,14,16,17],successfulli:[13,17],suffic:14,suffici:2,suitabl:[8,17],suppli:[13,17],support:[4,7,9],sure:13,surpris:2,swap:17,symbol:14,symlink:14,symmetr:17,synchron:1,system:[3,14,17],tabl:[6,18],take:[3,13],taken:6,talk:12,target:[3,14,16,17],target_path:14,task:3,tcp:[3,13,17],tcpip:17,tell:[5,10,14],term:[2,3,13],termin:[0,2,3,7,13,17],terminolog:8,test:17,text:[5,6,14,15,17],than:[0,2,12,14,17],thei:[2,3,5,8,9,13,14,17],them:[2,3,5,13,14,17],themselv:3,therefor:0,thereof:0,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],thing:14,those:[3,14,17],thread:[0,1,2,10,13,14,17],through:[0,2,3,8,13,14],thrown:[0,7,8,14,15,17],thu:[3,7,14,15,17],time:[0,2,3,6,10,14],timeout:[0,1,2,3,10,14,17],timer:10,titl:17,to_lin:6,togeth:[11,14],token:[16,17],too:[2,4,13,14],top:14,total:[5,14],traffic:[12,17],traffix:17,trail:[5,6,14],transfer:[14,17],translat:14,transmit:2,transport:[0,7,13],trap:14,travers:17,treat:[5,6,14],trigger:[10,11,17],trivial:[9,11],truncat:14,trust:17,tunnel:[2,13,17],tupl:[0,3,13,14,15,17],turn:[3,5,10,14,17],tweak:17,two:[0,2,11,17],type:[0,2,3,5,6,7,8,9,13,14,15,16,17],typeerror:17,typic:[3,5,14],uid:14,umask:14,unabl:2,undefin:17,under:0,underii:14,underli:[3,5,13,14,15,17],undon:5,unfortun:6,unhandl:0,unheard:9,unicod:14,unifi:15,uniqu:[2,13],unix:[0,2,13,14,16],unknown:[3,13,17],unless:[2,13],unlike:[2,5,14],unlink:14,unlock:[3,15],unopen:2,unprint:9,unsign:9,until:[0,2,14,17],unuse:8,upload:14,upon:[0,17],usag:18,use:[5,14,17],use_compress:17,used:14,useless:[0,8,13],user:[3,4,13,16,17,18],usernam:[0,3,13,16,17],using:12,usual:[2,6,13,14,17],utf:[5,14],utim:14,val:8,valid:[2,6,13],validate_point:8,valu:[0,1,2,4,9,10,13,14,15,16,17],valueerror:[5,17],vari:14,variabl:[0,4,13,15,16],variou:14,veri:17,verif:[17,18],verifi:[0,2,3,6,8,13,14,16,17],verify_ssh_sig:[0,8],version:[2,3,4,6,7,13,14,15,16,17],via:[2,3,4,13,14,17],vt100:[2,3,13],wai:[2,3,11,13,14,17],wait:[0,1,2,3,10,14,17],want:[0,2,3,13,14,17],warn:3,warningpolici:3,wasn:10,weak:[1,3,4,7,8,9,10,11,13,14,15,16],websit:18,were:[6,15],weren:9,what:[5,13,14,15,18],when:[0,1,2,3,5,6,9,11,13,14,15,17],whenc:5,whenev:[2,13,17],where:[11,14,17],whether:[0,2,13,14,17],which:[0,1,2,3,6,8,11,12,13,14,15,17,18],whitespac:6,who:[2,16,17],whole:[5,14],whose:[0,14,15],width:[2,3,13],width_pixel:[2,3],wildcard:4,window:[2,3,4,6,11,14,16,17],window_s:[2,14,17],windowspip:11,winsock:11,wish:[2,13],within:[5,7,13,14],without:[2,3,9,13,14,17],won:[2,13,14],work:[0,2,4,9,13,14,16],workaround:14,would:[0,1,2,13,14,17],wrap:[2,3,11,12,14,15],wrapper:[2,17],writabl:[5,14],write:[0,2,5,6,8,9,10,11,12,14,17],write_private_kei:[0,8],write_private_key_fil:[0,8],writefil:14,writelin:[5,14],written:[2,3,5,10,14,17],wrong:14,www:13,x11:[2,13,17],xreadlin:[5,14],yet:[2,5,9,14,17],you:[0,1,2,3,9,13,14,16,17,18],your:[3,13,14,17],zero:[1,2,5,9,14]},titles:["SSH
 agents","Buffered pipes","Channel","Client","Configuration","Buffered 
files","Host keys / <code class=\"docutils literal\"><span 
class=\"pre\">known_hosts</span></code> files","GSS-API key exchange","Key 
handling","Message","Packetizer","Cross-platform pipe implementations","<code 
class=\"docutils literal\"><span class=\"pre\">ProxyCommand</span></code> 
support","Server implementation","SFTP","Exceptions","GSS-API 
authentication","Transport","Welcome to Paramiko&#8217;s 
documentation!"],titleterms:{"class":[8,18],"function":18,agent:0,api:[7,16,18],authent:[16,18],buffer:[1,5],channel:2,client:3,configur:4,core:18,cross:11,document:18,dsa:8,dss:8,ecdsa:8,exception:15,exchang:7,file:[5,6],gss:[7,16],handl:8,host:6,implement:[11,13],kei:[6,7,8,18],known_host:6,messag:9,miscellani:18,other:18,packet:10,paramiko:18,parent:8,pipe:[1,11],platform:11,primari:18,protocol:18,proxycommand:12,rsa:8,server:13,sftp:14,ssh:[0,18],support:12,transport:17,welcom:18}})
\ No newline at end of file
+Search.setIndex({envversion:49,filenames:["api/agent","api/buffered_pipe","api/channel","api/client","api/config","api/file","api/hostkeys","api/kex_gss","api/keys","api/message","api/packet","api/pipe","api/proxy","api/server","api/sftp","api/ssh_exception","api/ssh_gss","api/transport","index"],objects:{"paramiko.agent":{Agent:[0,1,1,""],AgentClientProxy:[0,1,1,""],AgentKey:[0,1,1,""],AgentLocalProxy:[0,1,1,""],AgentProxyThread:[0,1,1,""],AgentRemoteProxy:[0,1,1,""],AgentRequestHandler:[0,1,1,""],AgentServerProxy:[0,1,1,""]},"paramiko.agent.Agent":{close:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.agent.AgentClientProxy":{close:[0,2,1,""],connect:[0,2,1,""]},"paramiko.agent.AgentKey":{can_sign:[0,2,1,""],from_private_key:[0,2,1,""],from_private_key_file:[0,2,1,""],get_base64:[0,2,1,""],get_bits:[0,2,1,""],get_fingerprint:[0,2,1,""],verify_ssh_sig:[0,2,1,""],write_private_key:[0,2,1,""],write_private_key_file:[0,2,1,""]},"paramiko.agent.AgentLocalProxy":{daemon:[0,3,1,""],get_connection:[0,2,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentProxyThread":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentRemoteProxy":{daemon:[0,3,1,""],ident:[0,3,1,""],isAlive:[0,2,1,""],is_alive:[0,2,1,""],join:[0,2,1,""],name:[0,3,1,""],start:[0,2,1,""]},"paramiko.agent.AgentServerProxy":{close:[0,2,1,""],get_env:[0,2,1,""],get_keys:[0,2,1,""]},"paramiko.buffered_pipe":{BufferedPipe:[1,1,1,""],PipeTimeout:[1,4,1,""]},"paramiko.buffered_pipe.BufferedPipe":{"__len__":[1,2,1,""],"__weakref__":[1,3,1,""],close:[1,2,1,""],empty:[1,2,1,""],feed:[1,2,1,""],read:[1,2,1,""],read_ready:[1,2,1,""],set_event:[1,2,1,""]},"paramiko.buffered_pipe.PipeTimeout":{"__weakref__":[1,3,1,""]},"paramiko.channel":{Channel:[2,1,1,""],ChannelFile:[2,1,1,""],open_only:[2,5,1,""]},"paramiko.channel.Channel":{"__init__":[2,2,1,""],"__repr__":[2,2,1,""],active:[2,3,1,""],chanid:[2,3,1,""],close:[2,2,1,""],closed:[2,3,1,""],exec_command:[2,2,1,""],exit_status_ready:[2,2,1,""],fileno:[2,2,1,""],get_id:[2,2,1,""],get_name:[2,2,1,""],get_pty:[2,2,1,""],get_transport:[2,2,1,""],getpeername:[2,2,1,""],gettimeout:[2,2,1,""],invoke_shell:[2,2,1,""],invoke_subsystem:[2,2,1,""],makefile:[2,2,1,""],makefile_stderr:[2,2,1,""],recv:[2,2,1,""],recv_exit_status:[2,2,1,""],recv_ready:[2,2,1,""],recv_stderr:[2,2,1,""],recv_stderr_ready:[2,2,1,""],remote_chanid:[2,3,1,""],request_forward_agent:[2,2,1,""],request_x11:[2,2,1,""],resize_pty:[2,2,1,""],send:[2,2,1,""],send_exit_status:[2,2,1,""],send_ready:[2,2,1,""],send_stderr:[2,2,1,""],sendall:[2,2,1,""],sendall_stderr:[2,2,1,""],set_combine_stderr:[2,2,1,""],set_environment_variable:[2,2,1,""],set_name:[2,2,1,""],setblocking:[2,2,1,""],settimeout:[2,2,1,""],shutdown:[2,2,1,""],shutdown_read:[2,2,1,""],shutdown_write:[2,2,1,""],transport:[2,3,1,""],update_environment:[2,2,1,""]},"paramiko.channel.ChannelFile":{"__repr__":[2,2,1,""]},"paramiko.client":{AutoAddPolicy:[3,1,1,""],MissingHostKeyPolicy:[3,1,1,""],RejectPolicy:[3,1,1,""],SSHClient:[3,1,1,""],WarningPolicy:[3,1,1,""]},"paramiko.client.MissingHostKeyPolicy":{"__weakref__":[3,3,1,""],missing_host_key:[3,2,1,""]},"paramiko.client.SSHClient":{"__init__":[3,2,1,""],close:[3,2,1,""],connect:[3,2,1,""],exec_command:[3,2,1,""],get_host_keys:[3,2,1,""],get_transport:[3,2,1,""],invoke_shell:[3,2,1,""],load_host_keys:[3,2,1,""],load_system_host_keys:[3,2,1,""],open_sftp:[3,2,1,""],save_host_keys:[3,2,1,""],set_log_channel:[3,2,1,""],set_missing_host_key_policy:[3,2,1,""]},"paramiko.config":{LazyFqdn:[4,1,1,""],SSHConfig:[4,1,1,""]},"paramiko.config.LazyFqdn":{"__weakref__":[4,3,1,""]},"paramiko.config.SSHConfig":{"__init__":[4,2,1,""],"__weakref__":[4,3,1,""],get_hostnames:[4,2,1,""],lookup:[4,2,1,""],parse:[4,2,1,""]},"paramiko.dsskey":{DSSKey:[8,1,1,""]},"paramiko.dsskey.DSSKey":{generate:[8,6,1,""]},"paramiko.ecdsakey":{ECDSAKey:[8,1,1,""]},"paramiko.ecdsakey.ECDSAKey":{generate:[8,7,1,""]},"paramiko.file":{BufferedFile:[5,1,1,""]},"paramiko.file.BufferedFile":{"__iter__":[5,2,1,""],close:[5,2,1,""],flush:[5,2,1,""],next:[5,2,1,""],read:[5,2,1,""],readable:[5,2,1,""],readinto:[5,2,1,""],readline:[5,2,1,""],readlines:[5,2,1,""],seek:[5,2,1,""],seekable:[5,2,1,""],tell:[5,2,1,""],writable:[5,2,1,""],write:[5,2,1,""],writelines:[5,2,1,""],xreadlines:[5,2,1,""]},"paramiko.hostkeys":{HostKeyEntry:[6,1,1,""],HostKeys:[6,1,1,""]},"paramiko.hostkeys.HostKeyEntry":{from_line:[6,7,1,""],to_line:[6,2,1,""]},"paramiko.hostkeys.HostKeys":{"__init__":[6,2,1,""],add:[6,2,1,""],check:[6,2,1,""],clear:[6,2,1,""],hash_host:[6,6,1,""],load:[6,2,1,""],lookup:[6,2,1,""],save:[6,2,1,""]},"paramiko.kex_gss":{KexGSSGex:[7,1,1,""],KexGSSGroup14:[7,1,1,""],KexGSSGroup1:[7,1,1,""],NullHostKey:[7,1,1,""]},"paramiko.kex_gss.KexGSSGex":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.KexGSSGroup1":{"__weakref__":[7,3,1,""],parse_next:[7,2,1,""],start_kex:[7,2,1,""]},"paramiko.kex_gss.NullHostKey":{"__weakref__":[7,3,1,""]},"paramiko.message":{Message:[9,1,1,""]},"paramiko.message.Message":{"__init__":[9,2,1,""],"__repr__":[9,2,1,""],"__str__":[9,2,1,""],"__weakref__":[9,3,1,""],add:[9,2,1,""],add_adaptive_int:[9,2,1,""],add_boolean:[9,2,1,""],add_byte:[9,2,1,""],add_bytes:[9,2,1,""],add_int64:[9,2,1,""],add_int:[9,2,1,""],add_list:[9,2,1,""],add_mpint:[9,2,1,""],add_string:[9,2,1,""],asbytes:[9,2,1,""],get_adaptive_int:[9,2,1,""],get_binary:[9,2,1,""],get_boolean:[9,2,1,""],get_byte:[9,2,1,""],get_bytes:[9,2,1,""],get_int64:[9,2,1,""],get_int:[9,2,1,""],get_list:[9,2,1,""],get_mpint:[9,2,1,""],get_remainder:[9,2,1,""],get_so_far:[9,2,1,""],get_string:[9,2,1,""],get_text:[9,2,1,""],rewind:[9,2,1,""]},"paramiko.packet":{Packetizer:[10,1,1,""]},"paramiko.packet.Packetizer":{"__weakref__":[10,3,1,""],complete_handshake:[10,2,1,""],handshake_timed_out:[10,2,1,""],need_rekey:[10,2,1,""],read_all:[10,2,1,""],read_message:[10,2,1,""],readline:[10,2,1,""],send_message:[10,2,1,""],set_inbound_cipher:[10,2,1,""],set_keepalive:[10,2,1,""],set_log:[10,2,1,""],set_outbound_cipher:[10,2,1,""],start_handshake:[10,2,1,""]},"paramiko.pipe":{WindowsPipe:[11,1,1,""],make_or_pipe:[11,5,1,""]},"paramiko.pipe.WindowsPipe":{"__weakref__":[11,3,1,""]},"paramiko.pkey":{PKey:[8,1,1,""]},"paramiko.pkey.PKey":{"__cmp__":[8,2,1,""],"__init__":[8,2,1,""],"__weakref__":[8,3,1,""],asbytes:[8,2,1,""],can_sign:[8,2,1,""],from_private_key:[8,7,1,""],from_private_key_file:[8,7,1,""],get_base64:[8,2,1,""],get_bits:[8,2,1,""],get_fingerprint:[8,2,1,""],get_name:[8,2,1,""],sign_ssh_data:[8,2,1,""],verify_ssh_sig:[8,2,1,""],write_private_key:[8,2,1,""],write_private_key_file:[8,2,1,""]},"paramiko.proxy":{ProxyCommand:[12,1,1,""]},"paramiko.proxy.ProxyCommand":{"__init__":[12,2,1,""],recv:[12,2,1,""],send:[12,2,1,""]},"paramiko.rsakey":{RSAKey:[8,1,1,""]},"paramiko.rsakey.RSAKey":{generate:[8,6,1,""]},"paramiko.server":{InteractiveQuery:[13,1,1,""],ServerInterface:[13,1,1,""],SubsystemHandler:[13,1,1,""]},"paramiko.server.InteractiveQuery":{"__init__":[13,2,1,""],"__weakref__":[13,3,1,""],add_prompt:[13,2,1,""]},"paramiko.server.ServerInterface":{"__weakref__":[13,3,1,""],cancel_port_forward_request:[13,2,1,""],check_auth_gssapi_keyex:[13,2,1,""],check_auth_gssapi_with_mic:[13,2,1,""],check_auth_interactive:[13,2,1,""],check_auth_interactive_response:[13,2,1,""],check_auth_none:[13,2,1,""],check_auth_password:[13,2,1,""],check_auth_publickey:[13,2,1,""],check_channel_direct_tcpip_request:[13,2,1,""],check_channel_env_request:[13,2,1,""],check_channel_exec_request:[13,2,1,""],check_channel_forward_agent_request:[13,2,1,""],check_channel_pty_request:[13,2,1,""],check_channel_request:[13,2,1,""],check_channel_shell_request:[13,2,1,""],check_channel_subsystem_request:[13,2,1,""],check_channel_window_change_request:[13,2,1,""],check_channel_x11_request:[13,2,1,""],check_global_request:[13,2,1,""],check_port_forward_request:[13,2,1,""],enable_auth_gssapi:[13,2,1,""],get_allowed_auths:[13,2,1,""]},"paramiko.server.SubsystemHandler":{"__init__":[13,2,1,""],finish_subsystem:[13,2,1,""],get_server:[13,2,1,""],start_subsystem:[13,2,1,""]},"paramiko.sftp_attr":{SFTPAttributes:[14,1,1,""]},"paramiko.sftp_attr.SFTPAttributes":{"__init__":[14,2,1,""],"__str__":[14,2,1,""],"__weakref__":[14,3,1,""],from_stat:[14,7,1,""]},"paramiko.sftp_client":{SFTP:[14,1,1,""],SFTPClient:[14,1,1,""]},"paramiko.sftp_client.SFTPClient":{"__init__":[14,2,1,""],chdir:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],file:[14,2,1,""],from_transport:[14,7,1,""],get:[14,2,1,""],get_channel:[14,2,1,""],getcwd:[14,2,1,""],getfo:[14,2,1,""],listdir:[14,2,1,""],listdir_attr:[14,2,1,""],listdir_iter:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],normalize:[14,2,1,""],open:[14,2,1,""],put:[14,2,1,""],putfo:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""],truncate:[14,2,1,""],unlink:[14,2,1,""],utime:[14,2,1,""]},"paramiko.sftp_file":{SFTPFile:[14,1,1,""]},"paramiko.sftp_file.SFTPFile":{check:[14,2,1,""],chmod:[14,2,1,""],chown:[14,2,1,""],close:[14,2,1,""],flush:[14,2,1,""],gettimeout:[14,2,1,""],next:[14,2,1,""],prefetch:[14,2,1,""],read:[14,2,1,""],readable:[14,2,1,""],readinto:[14,2,1,""],readline:[14,2,1,""],readlines:[14,2,1,""],readv:[14,2,1,""],seekable:[14,2,1,""],set_pipelined:[14,2,1,""],setblocking:[14,2,1,""],settimeout:[14,2,1,""],stat:[14,2,1,""],tell:[14,2,1,""],truncate:[14,2,1,""],utime:[14,2,1,""],writable:[14,2,1,""],write:[14,2,1,""],writelines:[14,2,1,""],xreadlines:[14,2,1,""]},"paramiko.sftp_handle":{SFTPHandle:[14,1,1,""]},"paramiko.sftp_handle.SFTPHandle":{"__init__":[14,2,1,""],chattr:[14,2,1,""],close:[14,2,1,""],read:[14,2,1,""],stat:[14,2,1,""],write:[14,2,1,""]},"paramiko.sftp_server":{SFTPServer:[14,1,1,""]},"paramiko.sftp_server.SFTPServer":{"__init__":[14,2,1,""],convert_errno:[14,6,1,""],set_file_attr:[14,6,1,""]},"paramiko.sftp_si":{SFTPServerInterface:[14,1,1,""]},"paramiko.sftp_si.SFTPServerInterface":{"__init__":[14,2,1,""],"__weakref__":[14,3,1,""],canonicalize:[14,2,1,""],chattr:[14,2,1,""],list_folder:[14,2,1,""],lstat:[14,2,1,""],mkdir:[14,2,1,""],open:[14,2,1,""],readlink:[14,2,1,""],remove:[14,2,1,""],rename:[14,2,1,""],rmdir:[14,2,1,""],session_ended:[14,2,1,""],session_started:[14,2,1,""],stat:[14,2,1,""],symlink:[14,2,1,""]},"paramiko.ssh_exception":{AuthenticationException:[15,4,1,""],BadAuthenticationType:[15,4,1,""],BadHostKeyException:[15,4,1,""],ChannelException:[15,4,1,""],NoValidConnectionsError:[15,4,1,""],PartialAuthentication:[15,4,1,""],PasswordRequiredException:[15,4,1,""],ProxyCommandFailure:[15,4,1,""],SSHException:[15,4,1,""]},"paramiko.ssh_exception.NoValidConnectionsError":{"__init__":[15,2,1,""]},"paramiko.ssh_exception.SSHException":{"__weakref__":[15,3,1,""]},"paramiko.ssh_gss":{"_SSH_GSSAPI":[16,1,1,""],"_SSH_GSSAuth":[16,1,1,""],"_SSH_SSPI":[16,1,1,""],GSSAuth:[16,5,1,""]},"paramiko.ssh_gss._SSH_GSSAPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.ssh_gss._SSH_GSSAuth":{"__init__":[16,2,1,""],"__weakref__":[16,3,1,""],set_service:[16,2,1,""],set_username:[16,2,1,""],ssh_check_mech:[16,2,1,""],ssh_gss_oids:[16,2,1,""]},"paramiko.ssh_gss._SSH_SSPI":{"__init__":[16,2,1,""],credentials_delegated:[16,3,1,""],save_client_creds:[16,2,1,""],ssh_accept_sec_context:[16,2,1,""],ssh_check_mic:[16,2,1,""],ssh_get_mic:[16,2,1,""],ssh_init_sec_context:[16,2,1,""]},"paramiko.transport":{SecurityOptions:[17,1,1,""],Transport:[17,1,1,""]},"paramiko.transport.SecurityOptions":{"__repr__":[17,2,1,""],ciphers:[17,3,1,""],compression:[17,3,1,""],digests:[17,3,1,""],kex:[17,3,1,""],key_types:[17,3,1,""]},"paramiko.transport.Transport":{"__init__":[17,2,1,""],"__repr__":[17,2,1,""],accept:[17,2,1,""],add_server_key:[17,2,1,""],atfork:[17,2,1,""],auth_gssapi_keyex:[17,2,1,""],auth_gssapi_with_mic:[17,2,1,""],auth_interactive:[17,2,1,""],auth_interactive_dumb:[17,2,1,""],auth_none:[17,2,1,""],auth_password:[17,2,1,""],auth_publickey:[17,2,1,""],cancel_port_forward:[17,2,1,""],close:[17,2,1,""],connect:[17,2,1,""],get_banner:[17,2,1,""],get_exception:[17,2,1,""],get_hexdump:[17,2,1,""],get_log_channel:[17,2,1,""],get_remote_server_key:[17,2,1,""],get_security_options:[17,2,1,""],get_server_key:[17,2,1,""],get_username:[17,2,1,""],getpeername:[17,2,1,""],global_request:[17,2,1,""],is_active:[17,2,1,""],is_authenticated:[17,2,1,""],load_server_moduli:[17,6,1,""],open_channel:[17,2,1,""],open_forward_agent_channel:[17,2,1,""],open_forwarded_tcpip_channel:[17,2,1,""],open_session:[17,2,1,""],open_sftp_client:[17,2,1,""],open_x11_channel:[17,2,1,""],renegotiate_keys:[17,2,1,""],request_port_forward:[17,2,1,""],send_ignore:[17,2,1,""],set_gss_host:[17,2,1,""],set_hexdump:[17,2,1,""],set_keepalive:[17,2,1,""],set_log_channel:[17,2,1,""],set_subsystem_handler:[17,2,1,""],start_client:[17,2,1,""],start_server:[17,2,1,""],use_compression:[17,2,1,""]},paramiko:{agent:[0,0,0,"-"],buffered_pipe:[1,0,0,"-"],channel:[2,0,0,"-"],client:[3,0,0,"-"],config:[4,0,0,"-"],dsskey:[8,0,0,"-"],ecdsakey:[8,0,0,"-"],file:[5,0,0,"-"],hostkeys:[6,0,0,"-"],kex_gss:[7,0,0,"-"],message:[9,0,0,"-"],packet:[10,0,0,"-"],pipe:[11,0,0,"-"],pkey:[8,0,0,"-"],proxy:[12,0,0,"-"],rsakey:[8,0,0,"-"],server:[13,0,0,"-"],sftp:[14,0,0,"-"],sftp_attr:[14,0,0,"-"],sftp_client:[14,0,0,"-"],sftp_file:[14,0,0,"-"],sftp_handle:[14,0,0,"-"],sftp_server:[14,0,0,"-"],sftp_si:[14,0,0,"-"],ssh_exception:[15,0,0,"-"],ssh_gss:[16,0,0,"-"],transport:[17,0,0,"-"]}},objnames:{"0":["py","module","Python
 module"],"1":["py","class","Python class"],"2":["py","method","Python 
method"],"3":["py","attribute","Python 
attribute"],"4":["py","exception","Python 
exception"],"5":["py","function","Python 
function"],"6":["py","staticmethod","Python static 
method"],"7":["py","classmethod","Python class 
method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:exception","5":"py:function","6":"py:staticmethod","7":"py:classmethod"},terms:{"2fac":17,"__cmp__":8,"__init__":[2,3,4,6,8,9,12,13,14,15,16,17],"__iter__":5,"__len__":1,"__repr__":[2,9,17],"__str__":[9,14],"__weakref__":[1,3,4,7,8,9,10,11,13,14,15,16],"_flag":[5,14],"_ssh_build_mic":16,"_ssh_gssapi":16,"_ssh_gssauth":16,"_ssh_sspi":16,"abstract":[0,8,14],"boolean":[0,9,13,16,17],"break":9,"byte":[0,1,2,5,6,8,9,10,12,14,16,17],"case":[2,3,13,14,15,17],"catch":[14,17],"char":[7,12],"class":[],"default":[0,1,2,3,4,13,14,16,17],"else":[5,14],"float":[0,1,2,3,10,14,17],"function":[],"import":[14,16],"int":[0,1,2,3,5,8,9,10,12,13,14,15,17],"long":[6,9,10,13,14,17],"new":[0,1,2,3,4,6,7,8,9,10,12,13,14,15,16,17],"null":[5,7,14],"public":[0,8,15,17,18],"return":[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17],"short":13,"static":[6,8,14,17],"switch":[10,17],"true":[0,1,2,3,5,6,8,10,13,14,16,17],"try":[3,15,17],"void":[16,17],"while":[2,3,14],abil:14,abl:2,about:[13,14],abov:13,abruptli:14,absent:[5,14],absolut:[5,14],abstraction:[2,11,14],accept:[2,3,13,14,16,17],acceptenv:2,access:[5,13,14,15],accord:4,account:13,accur:[5,14],achiev:17,across:[2,13,14,17],act:[11,13,18],activ:[0,2,14,17],actual:[2,5,11,13,14,16,17],add:[1,3,5,6,9,13,14,17],add_adaptive_int:9,add_boolean:9,add_byt:9,add_int64:9,add_int:9,add_list:9,add_mpint:9,add_prompt:13,add_server_kei:17,add_str:9,added:[3,14,17],addit:[2,14,17],address:[0,2,13,15,17],adequ:14,advers:17,affect:[2,11,14,17],after:[0,1,2,3,5,10,13,14,17],afterward:14,again:[2,13],against:3,agentclientproxi:0,agentforward:13,agentkei:0,agentlocalproxi:0,agentproxythread:0,agentremoteproxi:0,agentrequesthandl:0,agentserverproxi:0,agre:17,aka:[4,14],algorithm:[14,17],alia:[14,17],alias:14,aliv:[0,17],all:[0,1,2,4,5,6,8,10,13,14,15,17],alloc:[13,17],allow:[2,13,14,15,17,18],allow_ag:3,allowed_typ:15,almost:[13,17],alreadi:[9,14],also:[0,2,13,14,17],alter:14,altern:14,alwai:[0,2,10,13,14,17],amount:[1,2,10],ani:[0,1,2,3,5,6,9,13,14,17],anoth:[0,1,2,8,9,12],answer:[13,17],anticip:14,any:[3,6,14,17],anyth:[3,9,17],anytim:3,api:[],apolog:14,appear:3,append:[5,14],appli:4,applic:[2,3,13],applicat:2,appropri:14,approxim:[5,14],arbitrari:[9,14,17],area:18,aren:[9,13],arg:2,arguabl:6,argument:[0,1,2,3,5,12,13,14,17],around:[2,5,17],arrang:0,arriv:[1,2,13,17],asbyt:[8,9],asid:13,ask:[0,2,3,13,14,17],aspect:3,assign:[13,17],associ:[2,6,13,14],assum:[1,5,10,13,14,15],asymmetr:8,asynchron:17,asyncor:2,atfork:17,atim:14,attach:[2,17],attack:17,attemp:14,attempt:[0,1,2,3,10,13,14,15,16,17],attr:14,attribut:[14,15],autent:17,auth:[2,3,13,17],auth_cooki:[2,13],auth_failed:13,auth_gssapi_keyex:17,auth_gssapi_with_m:17,auth_interact:17,auth_interactive_dumb:17,auth_method:16,auth_non:17,auth_partially_successful:13,auth_password:17,auth_protocol:[2,13],auth_publickei:17,auth_successful:13,authent:[],authenticationexcept:[3,15,17],authhandl:13,author:14,autoaddpolici:3,autom:17,automat:[0,2,3,17],avail:[0,13,16],avoid:[2,14],back:[2,3,5,13,17],background:[2,14],backward:14,bad:2,badauthenticationtyp:[15,17],badhostkeyexcept:[3,15],banner:[3,17],banner_timeout:3,base64:[0,8],base:[0,5,8,9,10,14,17],basestr:17,basic:[2,18],battl:17,becaus:[2,5,13,14,15,16,17],been:[0,1,2,5,9,13,14,17],befor:[0,1,2,6,8,10,14,17],begin:[4,9,13,14,17],behav:[2,14,17],behavior:[2,13,14,17],belief:17,below:13,besid:17,betti:14,between:[0,12],binari:[0,5,8,14],bind:17,bit:[0,2,8,9,14],bitset:14,bizarr:14,blindli:13,blob:[0,8],block:[0,1,2,10,13,14,17],block_engin:10,block_siz:[10,14],book:10,bool:[2,3,9,10,13,14,16,17],both:[2,4,11,13,14,17],bother:6,boundari:14,buff:[5,14],buffered_pip:1,bufferedfil:[5,14],bufferedpip:1,bufsiz:[2,3,5,14],bug:6,build:9,built:[2,3,14],byte_count:17,bytearrai:[5,14],cach:[3,13],call:[0,1,2,3,5,6,10,13,14,16,17],callabl:[14,17],callback:[10,14],can:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,17],can_sign:[0,8],cancel:[13,17],cancel_port_forward:17,cancel_port_forward_request:13,cannot:[8,14],canon:14,canonic:14,captur:15,care:[3,6,14],caus:[0,2,3,13,14,17],cc_file:13,cc_filenam:13,certain:17,certainli:13,cetain:13,challeng:13,chan:[0,2],chanclient:0,chang:[2,3,14,17],changelog:18,chanid:[2,13],channel:[],channelexcept:15,channelfil:2,chanremot:0,charact:[2,3,5,9,13,14],charg:0,chattr:14,chdir:14,check:[2,3,5,6,10,13,14,16,18],check_auth_gssapi_keyex:13,check_auth_gssapi_with_m:13,check_auth_interact:13,check_auth_interactive_respons:13,check_auth_non:[13,17],check_auth_password:[13,17],check_auth_publickei:[13,17],check_channel_direct_tcpip_request:13,check_channel_env_request:13,check_channel_exec_request:13,check_channel_forward_agent_request:13,check_channel_pty_request:13,check_channel_request:[2,13,17],check_channel_shell_request:13,check_channel_subsystem_request:13,check_channel_window_change_request:13,check_channel_x11_request:13,check_global_request:13,check_port_forward_request:13,check_rekei:10,child:17,chmod:14,chown:14,chunk:14,cipher:[10,17],claim:17,classmethod:[6,8,14],clean:[0,17],cleanli:[14,17],cleanup:[13,14],clear:[1,6,11,17],client:[],client_token:16,clone:0,close:[0,1,2,3,5,10,13,14,17],code:[2,13,14,15,17],collect:[2,3,14],com:[3,13,17],combin:[2,6,9,13],come:14,comma:[9,13],command:[0,2,3,12,13,15],command_lin:12,commandproxi:12,comment:6,common:[2,8,14],commonli:14,commun:[0,3,17],compar:8,compat:[0,8,14],complet:[2,10,13,14,17],complete_handshak:10,compress:[3,17],comput:[14,17],concaten:[9,14],concept:14,condit:[2,3],config:[4,15],confirm:14,conflict:3,confus:17,connect:[0,2,3,7,13,15,16,17],consid:[2,14],consist:14,constant:2,construct:17,constructor:[0,2,9,14,17],contact:0,contain:[0,2,4,5,8,9,13,14,16,17],content:[0,7,8,9,12,14,17,18],context:[2,3,12,14,16,17],contextu:13,continu:[2,13,14,17],control:[0,2,13,14,17,18],conveni:[2,4,14],convert:[14,17],convert_errno:14,cooki:[2,13],cookie:2,copi:14,core:[],correctli:[0,2,8],correspond:[8,13,14],corrupt:17,could:[2,3,9,10,14,16],couldn:0,count:[5,14],cover:18,creat:[0,2,3,4,6,8,9,12,13,14,16,17],creation:18,credentail:16,credenti:[3,7,13,15,16,17],credentials_deleg:16,criteria:17,cryptographi:8,current:[0,2,3,5,10,14,16,17],curv:8,custom:9,cycl:[13,14],daemon:0,danger:13,data:[0,1,2,5,6,8,10,13,14,17,18],databas:[3,17],deadlock:0,deal:9,debian:17,debug:[2,9,17],decid:[0,13,18],declar:4,decod:9,decompos:9,decor:2,decrypt:[0,8],default_max_packet_s:17,default_window_s:[2,17],defin:[1,3,4,7,8,9,10,11,13,14,15,16],deleg:[3,7,13,16,17],delet:14,deliveri:2,demand:17,deni:17,depend:[2,14],deprec:[5,14],der:16,describ:[4,15],descript:14,descriptor:2,desctruct:14,desir:[2,5,14,16,17],desired_mech:16,dest:14,dest_addr:17,destin:[13,14,17],destroi:14,detail:[2,3,14,17,18],determin:[2,13,14,17],determinist:9,develop:13,dialog:17,dict:[0,2,3,4,6,14,15],dictionari:[2,6],did:[14,15],didn:[13,14],differ:[8,14,15,17],diffi:7,difficult:17,digest:17,dimens:13,direct:[2,14,17,18],directli:[2,3,17],directori:14,disabl:[2,3,17],disallow:2,discover:3,disk:14,displai:13,dispos:2,disrupt:17,distribut:17,doc:14,docstr:15,document:[],doe:[1,2,5,9,13,14,17],doesn:[2,5,6,9,14,16,17],don:[2,6,9,13,14,17],done:[1,3,10,13,17,18],down:[2,9],download:14,dramat:14,driven:12,dss:[],dsskei:[0,8,17],due:[3,14,17],dumb:17,dumber:17,dump:17,dure:[6,10,13,17],each:[3,4,13,14,17],eas:17,easi:14,ecdsakei:8,echo:[13,17],effect:[2,17],effici:[2,14],either:[0,2,3,6,11,13,14,16,18],elaps:[1,2],els:[2,6,13,14,17],empti:[0,1,5,6,13,14,17],emul:[2,3,14],enabl:13,enable_auth_gssapi:13,encod:[5,9,14,16],encount:[5,14,15],encrypt:[0,8,17,18],end:[0,2,4,5,11,13,14,17],enough:2,ensur:2,enter:17,entir:[0,2,5,14],entri:[2,4,6,14],enumer:0,env:13,environ:[2,3,13],environn:0,eof:[2,5,13,14],eoferror:[10,17],epoch:14,equal:8,equival:[2,6,8,9,14],errno:[14,15],error:[0,2,3,6,7,8,13,14,15,16,17],escap:14,especi:14,establish:[0,3],etc:[2,9,14,15,17],even:[0,5,14],event:[1,11,17],ever:[2,10,17],everi:10,exactli:[2,13,14],examin:3,exampl:[0,2,3,8,13,14,15,17],exceedingli:13,except:[0,1,2,3,5,6,7,14,15,17],exchang:[],exec_command:[0,2,3],exectu:2,execut:[0,2,3,10,12,13],exist:[0,2,3,6,8,14,17],exit:[0,2,13],exit_status_readi:2,expandus:6,expans:4,expect:[0,2,6,14,15,17,18],expected_kei:15,explan:15,explicit:[3,4],explicitli:14,expos:[9,15],express:[1,2],extend:14,extens:[9,13,14,17],extra:[13,17],facto:4,factor:14,factori:[0,8],fail:[2,3,5,13,15,16,17],failur:[3,13,14,15,17],fake:[0,2],fallback:17,fals:[0,1,2,3,5,6,8,10,13,14,16,17],famili:15,far:14,faster:2,featur:[9,14],fed:1,feed:1,feeder:1,fetch:[2,9,14,17],few:10,fewer:14,fget:[5,14],field:[14,17],file:[],file_obj:[0,4,8],file_s:14,filenam:[0,3,6,8,13,14,17],fileno:2,filesystem:14,fill:[2,8,14],find:[0,2,3,6,14],fine:[4,14],fingerprint:[0,8],finish:[2,13,18],finish_subsystem:13,firewal:17,first:[2,4,5,14,17],fit:17,flag:[5,14],flag_binary:[5,14],flow:[2,18],flush:[2,5,14],folder:14,follow:[2,3,13,14,17,18],foo:14,forc:[5,14,17],forev:[1,13,17],fork:[12,17],form:[6,14,16,17],format:[0,4,6,8,9,14],forward:[0,2,13,17],forward_agent_handl:0,found:[0,3,6,14,15],fqdn:[4,16],fraction:0,from:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],from_lin:6,from_private_kei:[0,8],from_private_key_fil:[0,8],from_stat:14,from_transport:14,fseek:5,full:14,func:[2,14,17],further:[2,13],futur:[1,2,5,13,14],garbag:[2,3],gener:[1,2,4,8,13,14,15,16,17],gentoo:17,get:[2,3,14,16,17],get_adaptive_int:9,get_allowed_auth:[13,17],get_bann:17,get_base64:[0,8],get_binari:9,get_bit:[0,8],get_boolean:9,get_byt:9,get_channel:14,get_connect:0,get_env:0,get_except:17,get_fingerprint:[0,8],get_hexdump:17,get_host_kei:3,get_hostnam:4,get_id:[0,2,13],get_int64:9,get_int:9,get_kei:0,get_list:9,get_log_channel:17,get_mpint:9,get_nam:[2,8,17],get_pti:[2,3],get_remaind:9,get_remote_server_kei:17,get_security_opt:17,get_serv:13,get_server_kei:17,get_so_far:9,get_str:9,get_text:9,get_transport:[0,2,3],get_usernam:17,getcwd:14,getfo:14,getpeernam:[2,17],gettimeout:[2,14],gid:14,git:0,give:17,given:[0,1,2,3,4,6,8,13,14,15,16,17],global:[13,17],global_request:17,gmt:14,goe:14,good:[3,13,14,17],got_kei:15,grant:13,greater:14,group14:7,group:[7,14,17],gss:[],gss_auth:[3,17],gss_authent:13,gss_deleg_cr:[3,16,17],gss_host:[3,17],gss_kex:[3,16,17],gssapi:[13,16,17],gssauth:16,gssexception:16,guarante:15,habit:2,had:[9,17],half:17,halv:2,hand:0,handi:14,handl:[],handler:[2,13,14,17],handshak:10,handshake_timed_out:10,hang:[2,3,14],happen:[0,5,17],hasattr:14,hash:[6,14,17],hash_algorithm:14,hash_host:6,hasn:2,have:[1,2,5,6,9,13,14,17,18],haven:[9,14,17],hazmat:8,height:[2,3,13],height_pixel:[2,3],held:0,hellman:7,helper:[0,14],here:13,hex:17,hexadecim:2,hexdump:17,high:[3,18],hint:14,hit:[5,14,17],home:14,hook:13,host:[],hostkei:[3,6,17],hostkeyentri:6,hostnam:[3,4,6,15,16,17],how:[2,9,12,14,18],howev:14,http:[0,13],hundr:2,id_dsa:3,id_ecdsa:3,id_rsa:3,idea:[5,13,14],ident:[0,2,9,14],identic:[5,14],identif:0,identifi:[0,13],ignor:[5,14,17],immedi:[1,2,5,14,17],implement:[],impli:[14,15],importerror:16,imposs:11,improv:14,inbound:10,includ:[5,6,13,14,17,18],incom:[2,7,17],incompat:0,incomplet:[5,14],incorrect:17,increment:14,indefinit:[2,13],independ:2,indic:[0,13,14,17],indicat:1,indistinguish:2,individu:[6,14],infinit:9,info:[14,17,18],inform:[4,13,14,17],inherit:0,initi:[0,16],initial:[2,16],input:[3,5,12,14],instanc:[2,3,8,12,14,15,17],instanti:0,instantli:2,instead:[3,5,12,14],instruct:[13,17],integ:[0,9,14],intend:[5,14],interact:[2,3,13,14,17],interactivequeri:13,interest:18,interfac:[0,2,3,5,12,13,14],intern:[5,14,15],internet:14,interpret:[2,3,13],interv:[10,17],invalid:[0,8],invok:[0,2,3,13],invoke_shel:[2,3],invoke_subsystem:2,ioerror:[0,3,5,6,8,14],ip_address:13,ipv4:15,irrit:2,is_act:[13,17],is_al:0,is_authent:17,isaliv:0,isn:[2,3,13,15,17],issu:14,item:[9,13],iter:[5,14],itself:[5,14],januari:14,join:0,judg:[0,8],junk:17,just:[0,6,9,13,14,16,17],keep:[10,17],keepal:[10,17],kei:[],kept:[5,14,17],kerbero:[3,13,16,17],kex:17,kex_gss:[7,13],kexgssgex:7,kexgssgroup14:7,kexgssgroup1:7,key_filenam:3,key_typ:17,keyboard:[13,17],keyex:16,keytyp:6,keyword:[14,17],kind:[2,3,13,17,18],know:17,knowledg:2,known:[3,6,9,13,14,17],krb5:[13,16],krb5_kuserok:13,krb5_princip:13,kwarg:[2,14,17],kwd:2,larg:[2,10,14,17],larger:2,last:[2,3,14,17],latenc:14,later:[8,14,17],latter:13,launch:0,lazyfqdn:4,lead:6,least:[1,2,10],left:[0,3],len:[5,14,17],length:[1,2,5,9,14,16],less:[2,5,14],level:[2,3,9,11,14,17,18],librari:13,like:[0,2,3,4,5,6,8,11,12,13,14,15,17,18],line:[5,6,10,14,15],lineno:6,link:[14,17],linux:13,list:[0,1,3,4,5,7,8,9,10,11,13,14,15,16,17],list_fold:14,listdir:14,listdir_attr:14,listdir_it:14,listen:[13,17],liter:4,littl:14,live:[0,17],load:[3,6,13,17],load_host_kei:3,load_server_moduli:17,load_system_host_kei:3,local:[0,2,3,13,14,17],localpath:14,locat:17,lock:10,log:[3,10,13,17],logfil:2,logic:[13,15],login:16,longer:[2,17],longnam:14,look:[4,6],look_for_kei:3,lookup:[4,6],loop:13,lost:0,low:9,lower:3,lowercas:4,lstat:14,mac_engin:10,mac_kei:10,mac_siz:10,machin:[0,12],machineri:14,made:[0,2,3,4,8,13,14,15,17],magic:[0,2,8],mai:[0,1,2,3,5,9,11,12,13,14,15,17,18],main:[0,18],maintain:18,make:[2,11,12,13,14,17],make_or_pip:11,makefil:2,makefile_stderr:2,malici:14,man:[4,13],manag:[2,3,12,14,17],mangl:10,mani:[0,2,7,12,14,17],manipul:3,manual:0,map:14,mask:14,match:[4,5,14,15,18],max:[14,17],max_packet_s:[14,17],maximum:[1,2,5,14],md5:[0,8,14],mean:[1,2,14],meant:[2,14,17],mechan:[3,16],memor:2,merg:[3,6],messag:[],method:[0,1,2,3,6,7,8,9,13,14,16,17],mic:[16,17],mic_token:16,microsoft:16,might:[13,14,17],mimic:14,mimick:14,mirror:14,misguid:17,miss:[3,14],missing_host_kei:3,missinghostkeypolici:3,mit:[2,16],mix:[5,14],mkdir:14,mode:[2,5,7,13,14,16,17],modif:14,modifi:[3,14,17],modul:[0,2,7,14,16,17],moduli:17,more:[0,1,2,4,6,13,14,15,17,18],most:[0,3,5,14,15],mostli:[0,2,14],move:[5,14],movement:5,mp3:13,mp3handler:13,mpint:9,msg:[0,8,13],mtime:14,much:[2,13,14],multi:17,multipl:[0,3,6,13,14,15,17],multiplex:17,must:[0,2,3,6,11,13,14,17],name:[0,2,3,5,6,8,13,14,16,17],nat:17,nbyte:[1,2],nearli:11,necessari:[0,2,8,10,14],need:[0,1,2,9,10,12,13,15,17,18],need_rekei:10,needrekeyexcept:10,neg:[5,14,17],negot:17,negoti:[6,10,14,15,16,17,18],network:[2,17],never:[2,17],newli:14,newlin:[5,6,14],newpath:14,next:[5,7,9,14,17],nois:17,non:[0,2,5,8,9,14,16],none:[0,1,2,3,4,5,6,8,9,13,14,15,16,17],nonneg:[1,2],nonzero:0,normal:[0,1,2,4,9,11,14,15,17],normpath:14,notat:14,note:[2,13,14,16],noth:[0,2,5,8,13,14],notic:[2,13],notimplementederror:16,novalidconnectionserror:15,now:13,nullhostkei:7,number:[0,1,2,5,8,9,10,13,14,16,17],numer:14,o_append:14,o_creat:14,o_excl:14,o_rdonly:14,o_rdwr:14,o_trunc:14,o_wronly:14,obei:[1,14],obj:[9,14],object:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18],obscur:17,obtain:[0,4],obviou:14,occasion:14,occur:[0,2,3,5,7,14],octal:14,off:[10,14,17],offset:[5,14],often:[3,17],oid:16,okai:[5,10,13,14],old:3,oldpath:14,omit:[2,5,14],onc:[0,1,2,13,14,17],once:[14,18],one:14,onli:[0,2,3,4,5,9,11,13,14,15,16,17],only:[2,3,8,10,14,17],open:[0,2,3,5,13,14,15,17],open_channel:17,open_failed_administratively_prohibited:13,open_failed_connect_failed:13,open_failed_resource_shortage:13,open_failed_unknown_channel_type:13,open_forward_agent_channel:17,open_forwarded_tcpip_channel:17,open_onli:2,open_sess:[0,17],open_sftp:3,open_sftp_cli:17,open_succeeded:13,open_x11_channel:[13,17],openssh:[2,3,4,6,14,17],oper:[0,1,2,5,14,17],option:[0,1,2,3,4,5,6,8,13,14,17],order:[3,6,14,17],organ:18,origin:[6,13,14,17],origin_addr:17,origin_port:17,oserror:14,other:[],otherwis:[0,1,2,6,8,13,14,16,17],out:[0,1,5,9,10,14],outbound:[2,10],outgo:2,output:[2,3,12,15],outsid:14,over:[2,5,14,17,18],overal:14,overrid:[3,13,14,17],overridden:14,overwrit:13,own:[5,13],owner:14,ownership:14,packet:[],page:[4,13],pair:[0,6],paket:7,pam:17,param:[2,14],paramet:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17],paramiko:[],pars:[4,6,7,9],parse_next:7,part:[0,1,2,8,17],partial:[2,14,15,17],partialauthent:15,particular:2,partit:14,pass:[2,3,8,9,10,12,13,14,17,18],password:[0,3,8,13,15,17,18],passwordrequiredexcept:[0,8,15],past:14,path:[6,13,14,17],pathnam:14,pattern:4,paus:17,payload:17,pend:[2,10,14],peopl:[2,9],per:[0,14],perform:[2,3,13,14,16,17],period:[1,2],permiss:[14,17],permit:17,peroid:17,pick:[13,17],pipelin:14,pipetimeout:1,pixel:[2,3,13],pixelheight:13,pixelwidth:13,pkei:[0,3,6,8,13,15,17],place:13,plain:[3,17],plattform:13,pleas:18,plu:3,point:0,polici:3,poll:2,popen:12,port:[0,2,3,4,13,15,17],posit:[5,9,14],posix:[3,4,6,14,17],possibl:[2,5,6,10,12,13,14,15,17],practic:[2,3],pre:[3,14],precis:9,predat:[5,14],prefer:[13,17],prefetch:14,prematur:17,presenc:14,presens:14,present:[0,2,3,5,14,15],preserv:6,pretti:17,previou:[2,13,17],previous:[2,3,13,14,17],primari:[],primarili:[2,4,14],prime:17,primit:8,princip:13,print:17,prior:[1,2],prioriti:3,privat:[0,3,8,15,17,18],probabl:[3,13,14],problem:2,proce:2,process:[0,2,4,10,13,17],produc:[5,14],program:[0,12],progress_func:8,project:18,prompt:[13,17],prompt_list:17,protocol:[],provid:[2,3,4,7,13,14,15,16,18],proxi:[0,12,14,15],proxycommandfailur:15,pseudo:[2,3,13,16],psuedo:13,pty:[2,13],ptype:7,publickei:[13,15],purpos:0,put:14,putfo:14,pycrypto:[],python:[0,2,3,5,8,9,10,13,14,16,18],queri:[4,13],question:[13,17],queu:2,queue:[2,17],quickli:14,race:3,rais:[0,1,2,3,5,6,8,10,14,15,16,17],random:[2,5,14,17],rare:17,rather:17,raw:9,reach:[1,5,10,14],read:[0,1,2,3,4,5,6,8,10,11,12,14,17],read_ahead:14,read_al:10,read_messag:10,read_readi:1,readabl:[5,11,14],readfil:14,readi:[1,2],readinto:[5,14],readlin:[5,10,14],readlink:14,readv:14,real:[2,11,15],realli:[2,9,14],realpath:14,reason:[13,15],receiv:[1,2,3,12,16,17,18],recent:17,recogn:[0,8,17],recommended:2,recv:[2,12,17],recv_exit_statu:2,recv_readi:2,recv_stderr:2,recv_stderr_readi:2,recv_token:16,recycl:0,refer:[1,3,4,7,8,9,10,11,13,14,15,16,17],reflect:2,refus:[13,17],regener:9,regist:13,regular:12,reject:[2,3,13,17],rejectpolici:3,rekei:10,rel:[0,5,8,14],reli:3,remain:[2,5,9,14],remaind:14,remot:[0,2,3,13,14,17,18],remote_chanid:2,remotepath:14,remov:[6,14],renam:14,renegoti:17,renegotiate_kei:17,replac:[2,3,6],report:13,repositori:0,repres:[0,1,2,3,7,8,14,15,17],represent:[2,3,4,6,8,9,14,17],request:[0,2,3,4,12,13,14,17,18],request_forward_ag:[0,2],request_port_forward:17,request_x11:2,requir:[2,3,7,13,14,17],reset:[2,10],resiz:[2,13],resize_pti:2,resolut:15,resolv:14,respect:[2,14],respond:[13,17],respons:[2,13,14,17,18],restrict:14,result:[1,2,13,14],retreiv:0,retri:15,retriev:[2,13,14],reus:2,reusabl:5,reveal:[0,8,14],rewind:9,rfc:[2,7,16],rich:14,right:2,rmdir:14,round:[5,14],roundtrip:14,rout:13,rsa:[],rsakei:[0,8,17],rsync:14,rtype:9,rule:4,run:[0,2,3,12,13],runtimeerror:0,safe:17,sai:[7,17],sake:14,salt:6,same:[0,2,3,13,14,15,17],sampl:17,save:[3,6,16,17],save_client_cr:16,save_host_kei:3,saver:14,screen:[2,13],screen_numb:[2,13],sdctr:10,search:3,second:[0,1,2,3,10,14,17],secp256r1:8,secret:[0,8],section:[4,7,14],secur:[0,2,8,14,17],securityopt:17,see:[0,2,3,13,14,15,16,17,18],seek:[5,14],seekabl:[5,14],segment:14,select:[2,11],self:[5,14],semant:[0,1,2],send:[2,6,12,13,17,18],send_exit_statu:2,send_ignor:17,send_messag:10,send_readi:2,send_stderr:2,sendal:2,sendall_stderr:2,sens:[2,13],sent:[2,12,13,17],separ:[0,1,4,5,9,13,14,17],seq:9,sequenc:[5,9,14,16],seri:[13,14],serv:14,server:[],server_addr:17,server_port:17,serverinterfac:[2,13,14,17],servic:[13,16],session:[0,2,3,13,14,16,17,18],session_end:14,session_id:16,session_start:14,set:[0,1,2,3,4,5,10,11,13,14,16,17],set_combine_stderr:2,set_environment_vari:[2,3],set_ev:1,set_file_attr:14,set_gss_host:17,set_hexdump:17,set_inbound_ciph:10,set_keepal:[10,17],set_log:10,set_log_channel:[3,17],set_missing_host_key_polici:3,set_nam:2,set_outbound_ciph:10,set_pipelin:14,set_servic:16,set_subsystem_handl:[13,14,17],set_usernam:16,setblock:[2,14],setter:[16,17],settimeout:[2,3,14,17],setup:14,sftp:[],sftp_:14,sftp_attr:14,sftp_client:14,sftp_eof:14,sftp_file:14,sftp_handl:14,sftp_no_such_file:14,sftp_ok:14,sftp_permission_denied:14,sftp_server:14,sftp_si:14,sftpattribut:14,sftpclient:[3,14,17],sftpfile:14,sftphandl:14,sftpserver:14,sftpserverinterfac:14,sha1:14,sha:14,share:[16,17],shell:[2,3,13],shortcut:[14,17],shorter:12,should:[0,2,3,4,6,8,10,12,13,14,17],shouldn:[2,13],show:2,shrink:14,shut:2,shutdown:[2,3],shutdown_read:2,shutdown_writ:2,side:[0,2,13,14,17,18],sign:[0,8,17],sign_ssh_data:8,signal:10,signatur:[0,2,8,13,18],signifi:14,signific:[0,8],signtatur:13,silent:[2,3],similar:[13,14],similarli:2,simpl:17,simpler:[5,17],simpli:[0,2,3,17],simul:2,sinc:[4,5,14,17],singl:[2,6,9,13,14,15,16,17],single_connect:[2,13],site:18,situat:[2,3,14,17],size:[3,5,12,14,17],sizehint:[5,14],slack:14,sleep:13,slightli:2,small:[2,13],sock:[3,14,17],socket:[0,1,2,3,10,11,12,14,15,17,18],some:[2,3,5,9,13,14,15,17],someth:[13,14,17],sometim:17,sort:2,sourc:[14,17],space:2,speak:0,special:14,specif:[3,4,13,14,15,17],specifi:[0,1,2,5,13,14,15,16,17],speed:14,split:6,src_addr:17,ssh2:[2,8,9,15,16,17],ssh_accept_sec_context:16,ssh_auth_sock:0,ssh_check_mech:16,ssh_check_mic:16,ssh_config:4,ssh_except:15,ssh_fxp_readdir:14,ssh_get_mic:16,ssh_gss:[13,16],ssh_gss_oid:16,ssh_init_sec_context:16,sshclient:[0,3,18],sshconfig:4,sshexception:[0,2,3,8,10,14,15,16,17],sspi:[7,16,17],st_atim:14,st_gid:14,st_mode:14,st_mtime:14,st_size:14,st_uid:14,stage:17,stall:2,standard:[4,12,14,17],start:[0,3,7,10,13,14,17,18],start_client:[17,18],start_handshak:10,start_kex:7,start_serv:[17,18],start_subsystem:13,stat:14,state:[6,13],statist:14,statu:[2,10],stderr:[2,3,13],stdin:[2,3,13],stdio:[5,14],stdout:[2,3,13,17],step:17,still:[0,13,17],stop:[2,14,17],stopiter:[5,14],store:[0,4,6,8,14,15,16,17],str:[0,1,2,3,4,5,6,8,9,10,12,13,14,15,16,17],stream:[2,3,5,9,17],string:[0,1,2,4,5,6,8,9,12,13,14,16,17],structur:[3,14],style:[3,5,6,14],sub:17,subclass:[0,2,3,8,13,14,15,17],submethod:[13,17],subprocess:12,subsequ:[2,17],substitut:4,subsystem:[2,13,14,17],subsystemhandl:[13,14,17],subsytem:13,succe:[0,2,13,14,17],succeed:15,success:[13,14,16,17],successfulli:[13,17],suffic:14,suffici:2,suitabl:[8,17],suppli:[13,17],support:[],sure:[2,13],surpris:2,swap:17,symbol:14,symlink:14,symmetr:17,synchron:1,system:[3,14,17],tabl:[6,18],take:[3,13],taken:6,talk:12,target:[3,14,16,17],target_path:14,task:3,tcp:[3,13,17],tcpip:17,tell:[5,10,14],term:[2,3,13],termin:[0,2,3,7,13,17],terminolog:8,test:17,text:[5,6,14,15,17],than:[0,2,12,14,17],thei:[2,3,5,8,9,13,14,17],them:[2,3,5,13,14,17],themselv:3,therefor:0,thereof:0,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],thing:14,those:[3,14,17],thread:[0,1,2,10,13,14,17],through:[0,2,3,8,13,14],thrown:[0,7,8,14,15,17],thu:[3,7,14,15,17],time:[0,2,3,6,10,14],timeout:[0,1,2,3,10,14,17],timer:10,titl:17,to_lin:6,togeth:[11,14],token:[16,17],too:[2,4,13,14],top:14,total:[5,14],traffic:[12,17],traffix:17,trail:[5,6,14],transfer:[14,17],translat:14,transmit:2,transport:[],trap:14,travers:17,treat:[5,6,14],trigger:[10,11,17],trivial:[9,11],truncat:14,trust:17,tunnel:[2,13,17],tupl:[0,3,13,14,15,17],turn:[3,5,10,14,17],tweak:17,two:[0,2,11,17],type:[0,2,3,5,6,7,8,9,13,14,15,16,17],typeerror:17,typic:[3,5,14],uid:14,umask:14,unabl:2,undefin:17,under:0,underii:14,underli:[3,5,13,14,15,17],understand:2,undon:5,unfortun:6,unhandl:0,unheard:9,unicod:14,unifi:15,uniqu:[2,13],unix:[0,2,13,14,16],unknown:[3,13,17],unless:[2,13],unlike:[2,5,14],unlink:14,unlock:[3,15],unopen:2,unprint:9,unsign:9,until:[0,2,14,17],unuse:8,update:2,update_environ:2,upload:14,upon:[0,17],usag:18,use:[5,14,17],use_compress:17,used:14,useless:[0,8,13],user:[3,4,13,16,17,18],usernam:[0,3,13,16,17],using:12,usual:[2,6,13,14,17],utf:[5,14],utim:14,val:8,valid:[2,6,13],validate_point:8,valu:[0,1,2,4,9,10,13,14,15,16,17],valueerror:[5,17],vari:14,variabl:[0,2,3,4,13,15,16],variou:14,veri:17,verif:[17,18],verifi:[0,2,3,6,8,13,14,16,17],verify_ssh_sig:[0,8],version:[2,3,4,6,7,13,14,15,16,17],via:[2,3,4,13,14,17],vt100:[2,3,13],wai:[2,3,11,13,14,17],wait:[0,1,2,3,10,14,17],want:[0,2,3,13,14,17],warn:[2,3],warningpolici:3,wasn:10,weak:[1,3,4,7,8,9,10,11,13,14,15,16],websit:18,were:[6,15],weren:9,what:[5,13,14,15,18],when:[0,1,2,3,5,6,9,11,13,14,15,17],whenc:5,whenev:[2,13,17],where:[11,14,17],whether:[0,2,13,14,17],which:[0,1,2,3,6,8,11,12,13,14,15,17,18],whitespac:6,who:[2,16,17],whole:[5,14],whose:[0,14,15],width:[2,3,13],width_pixel:[2,3],wildcard:4,window:[2,3,4,6,11,14,16,17],window_s:[2,14,17],windowspip:11,winsock:11,wish:[2,13],within:[3,5,7,13,14],without:[2,3,9,13,14,17],won:[2,13,14],work:[0,2,4,9,13,14,16],workaround:14,would:[0,1,2,13,14,17],wrap:[2,3,11,12,14,15],wrapper:[2,17],writabl:[5,14],write:[0,2,5,6,8,9,10,11,12,14,17],write_private_kei:[0,8],write_private_key_fil:[0,8],writefil:14,writelin:[5,14],written:[2,3,5,10,14,17],wrong:14,www:13,x11:[2,13,17],xreadlin:[5,14],yet:[2,5,9,14,17],you:[0,1,2,3,9,13,14,16,17,18],your:[2,3,13,14,17],zero:[1,2,5,9,14]},titles:["SSH
 agents","Buffered pipes","Channel","Client","Configuration","Buffered 
files","Host keys / <code class=\"docutils literal\"><span 
class=\"pre\">known_hosts</span></code> files","GSS-API key exchange","Key 
handling","Message","Packetizer","Cross-platform pipe implementations","<code 
class=\"docutils literal\"><span class=\"pre\">ProxyCommand</span></code> 
support","Server implementation","SFTP","Exceptions","GSS-API 
authentication","Transport","Welcome to Paramiko&#8217;s 
documentation!"],titleterms:{"class":[8,18],"function":18,agent:0,api:[7,16,18],authent:[16,18],buffer:[1,5],channel:2,client:3,configur:4,core:18,cross:11,document:18,dsa:8,dss:8,ecdsa:8,exception:15,exchang:7,file:[5,6],gss:[7,16],handl:8,host:6,implement:[11,13],kei:[6,7,8,18],known_host:6,messag:9,miscellani:18,other:18,packet:10,paramiko:18,parent:8,pipe:[1,11],platform:11,primari:18,protocol:18,proxycommand:12,rsa:8,server:13,sftp:14,ssh:[0,18],support:12,transport:17,welcom:18}})
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/_version.py 
new/paramiko-2.1.1/paramiko/_version.py
--- old/paramiko-2.0.2/paramiko/_version.py     2016-07-26 06:15:31.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/_version.py     2016-12-13 01:12:48.000000000 
+0100
@@ -1,2 +1,2 @@
-__version_info__ = (2, 0, 2)
+__version_info__ = (2, 1, 1)
 __version__ = '.'.join(map(str, __version_info__))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/_winapi.py 
new/paramiko-2.1.1/paramiko/_winapi.py
--- old/paramiko-2.0.2/paramiko/_winapi.py      2016-07-26 03:07:05.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/_winapi.py      2016-12-06 05:51:49.000000000 
+0100
@@ -89,7 +89,7 @@
 GMEM_MOVEABLE = 0x2
 
 GlobalAlloc = ctypes.windll.kernel32.GlobalAlloc
-GlobalAlloc.argtypes = ctypes.wintypes.UINT, ctypes.c_ssize_t
+GlobalAlloc.argtypes = ctypes.wintypes.UINT, ctypes.c_size_t
 GlobalAlloc.restype = ctypes.wintypes.HANDLE
 
 GlobalLock = ctypes.windll.kernel32.GlobalLock
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/channel.py 
new/paramiko-2.1.1/paramiko/channel.py
--- old/paramiko-2.0.2/paramiko/channel.py      2016-07-26 05:41:06.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/channel.py      2016-12-13 01:12:11.000000000 
+0100
@@ -283,6 +283,58 @@
         m.add_int(height_pixels)
         self.transport._send_user_message(m)
 
+    @open_only
+    def update_environment(self, environment):
+        """
+        Updates this channel's remote shell environment.
+
+        .. note::
+            This operation is additive - i.e. the current environment is not
+            reset before the given environment variables are set.
+
+        .. warning::
+            Servers may silently reject some environment variables; see the
+            warning in `set_environment_variable` for details.
+
+        :param dict environment:
+            a dictionary containing the name and respective values to set
+        :raises SSHException:
+            if any of the environment variables was rejected by the server or
+            the channel was closed
+        """
+        for name, value in environment.items():
+            try:
+                self.set_environment_variable(name, value)
+            except SSHException as e:
+                err = "Failed to set environment variable \"{0}\"."
+                raise SSHException(err.format(name), e)
+
+    @open_only
+    def set_environment_variable(self, name, value):
+        """
+        Set the value of an environment variable.
+
+        .. warning::
+            The server may reject this request depending on its ``AcceptEnv``
+            setting; such rejections will fail silently (which is common client
+            practice for this particular request type). Make sure you
+            understand your server's configuration before using!
+
+        :param str name: name of the environment variable
+        :param str value: value of the environment variable
+
+        :raises SSHException:
+            if the request was rejected or the channel was closed
+        """
+        m = Message()
+        m.add_byte(cMSG_CHANNEL_REQUEST)
+        m.add_int(self.remote_chanid)
+        m.add_string('env')
+        m.add_boolean(False)
+        m.add_string(name)
+        m.add_string(value)
+        self.transport._send_user_message(m)
+
     def exit_status_ready(self):
         """
         Return true if the remote process has exited and returned an exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/client.py 
new/paramiko-2.1.1/paramiko/client.py
--- old/paramiko-2.0.2/paramiko/client.py       2016-07-26 03:07:05.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/client.py       2016-12-13 01:12:11.000000000 
+0100
@@ -335,7 +335,7 @@
             t.set_log_channel(self._log_channel)
         if banner_timeout is not None:
             t.banner_timeout = banner_timeout
-        t.start_client()
+        t.start_client(timeout=timeout)
         ResourceManager.register(self, t)
 
         server_key = t.get_remote_server_key()
@@ -398,7 +398,14 @@
             self._agent.close()
             self._agent = None
 
-    def exec_command(self, command, bufsize=-1, timeout=None, get_pty=False):
+    def exec_command(
+        self,
+        command,
+        bufsize=-1,
+        timeout=None,
+        get_pty=False,
+        environment=None,
+    ):
         """
         Execute a command on the SSH server.  A new `.Channel` is opened and
         the requested command is executed.  The command's input and output
@@ -411,6 +418,14 @@
             Python
         :param int timeout:
             set command's channel timeout. See `Channel.settimeout`.settimeout
+        :param dict environment:
+            a dict of shell environment variables, to be merged into the
+            default environment that the remote command executes within.
+
+            .. warning::
+                Servers may silently reject some environment variables; see the
+                warning in `.Channel.set_environment_variable` for details.
+
         :return:
             the stdin, stdout, and stderr of the executing command, as a
             3-tuple
@@ -421,6 +436,8 @@
         if get_pty:
             chan.get_pty()
         chan.settimeout(timeout)
+        if environment:
+            chan.update_environment(environment)
         chan.exec_command(command)
         stdin = chan.makefile('wb', bufsize)
         stdout = chan.makefile('r', bufsize)
@@ -428,7 +445,7 @@
         return stdin, stdout, stderr
 
     def invoke_shell(self, term='vt100', width=80, height=24, width_pixels=0,
-                     height_pixels=0):
+                     height_pixels=0, environment=None):
         """
         Start an interactive shell session on the SSH server.  A new `.Channel`
         is opened and connected to a pseudo-terminal using the requested
@@ -440,6 +457,7 @@
         :param int height: the height (in characters) of the terminal window
         :param int width_pixels: the width (in pixels) of the terminal window
         :param int height_pixels: the height (in pixels) of the terminal window
+        :param dict environment: the command's environment
         :return: a new `.Channel` connected to the remote shell
 
         :raises SSHException: if the server fails to invoke a shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/config.py 
new/paramiko-2.1.1/paramiko/config.py
--- old/paramiko-2.0.2/paramiko/config.py       2016-07-25 20:58:23.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/config.py       2016-12-13 00:23:15.000000000 
+0100
@@ -209,6 +209,7 @@
                         ],
                         'proxycommand':
                         [
+                            ('~', homedir),
                             ('%h', config['hostname']),
                             ('%p', port),
                             ('%r', remoteuser)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/ecdsakey.py 
new/paramiko-2.1.1/paramiko/ecdsakey.py
--- old/paramiko-2.0.2/paramiko/ecdsakey.py     2016-07-26 06:15:31.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/ecdsakey.py     2016-12-13 01:09:49.000000000 
+0100
@@ -258,7 +258,7 @@
             key = serialization.load_der_private_key(
                 data, password=None, backend=default_backend()
             )
-        except ValueError as e:
+        except (ValueError, AssertionError) as e:
             raise SSHException(str(e))
 
         self.signing_key = key
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/pkey.py 
new/paramiko-2.1.1/paramiko/pkey.py
--- old/paramiko-2.0.2/paramiko/pkey.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/paramiko/pkey.py 2016-12-13 01:09:49.000000000 +0100
@@ -333,8 +333,7 @@
 
         :raises IOError: if there was an error writing the file.
         """
-        with open(filename, 'w', o600) as f:
-            # grrr... the mode doesn't always take hold
+        with open(filename, 'w') as f:
             os.chmod(filename, o600)
             self._write_private_key(f, key, format)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/proxy.py 
new/paramiko-2.1.1/paramiko/proxy.py
--- old/paramiko-2.0.2/paramiko/proxy.py        2016-07-26 06:03:49.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/proxy.py        2016-12-06 04:56:45.000000000 
+0100
@@ -21,7 +21,6 @@
 import os
 from shlex import split as shlsplit
 import signal
-from subprocess import Popen, PIPE
 from select import select
 import socket
 import time
@@ -49,6 +48,9 @@
         :param str command_line:
             the command that should be executed and used as the proxy.
         """
+        # NOTE: subprocess import done lazily so platforms without it (e.g.
+        # GAE) can still import us during overall Paramiko load.
+        from subprocess import Popen, PIPE
         self.cmd = shlsplit(command_line)
         self.process = Popen(self.cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE,
                              bufsize=0)
@@ -107,5 +109,14 @@
     def close(self):
         os.kill(self.process.pid, signal.SIGTERM)
 
+    @property
+    def closed(self):
+        return self.process.returncode is not None
+
+    @property
+    def _closed(self):
+        # Concession to Python 3 socket-like API
+        return self.closed
+
     def settimeout(self, timeout):
         self.timeout = timeout
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko/transport.py 
new/paramiko-2.1.1/paramiko/transport.py
--- old/paramiko-2.0.2/paramiko/transport.py    2016-07-26 06:15:31.000000000 
+0200
+++ new/paramiko-2.1.1/paramiko/transport.py    2016-12-13 01:12:11.000000000 
+0100
@@ -1,4 +1,5 @@
 # Copyright (C) 2003-2007  Robey Pointer <[email protected]>
+# Copyright (C) 2003-2007  Robey Pointer <[email protected]>
 #
 # This file is part of paramiko.
 #
@@ -229,6 +230,7 @@
     }
 
     _modulus_pack = None
+    _active_check_timeout = 0.1
 
     def __init__(self,
                  sock,
@@ -316,7 +318,7 @@
             # we set the timeout so we can check self.active periodically to
             # see if we should bail.  socket.timeout exception is never
             # propagated.
-            self.sock.settimeout(0.1)
+            self.sock.settimeout(self._active_check_timeout)
         except AttributeError:
             pass
 
@@ -444,7 +446,7 @@
         # We need the FQDN to get this working with SSPI
         self.gss_host = socket.getfqdn(gss_host)
 
-    def start_client(self, event=None):
+    def start_client(self, event=None, timeout=None):
         """
         Negotiate a new SSH2 session as a client.  This is the first step after
         creating a new `.Transport`.  A separate thread is created for protocol
@@ -455,7 +457,7 @@
         be triggered.  On failure, `is_active` will return ``False``.
 
         (Since 1.4) If ``event`` is ``None``, this method will not return until
-        negotation is done.  On success, the method returns normally.
+        negotiation is done.  On success, the method returns normally.
         Otherwise an SSHException is raised.
 
         After a successful negotiation, you will usually want to authenticate,
@@ -472,6 +474,9 @@
         :param .threading.Event event:
             an event to trigger when negotiation is complete (optional)
 
+        :param float timeout:
+            a timeout, in seconds, for SSH2 session negotiation (optional)
+
         :raises SSHException: if negotiation fails (and no ``event`` was passed
             in)
         """
@@ -485,6 +490,7 @@
         # synchronous, wait for a result
         self.completion_event = event = threading.Event()
         self.start()
+        max_time = time.time() + timeout if timeout is not None else None
         while True:
             event.wait(0.1)
             if not self.active:
@@ -492,7 +498,7 @@
                 if e is not None:
                     raise e
                 raise SSHException('Negotiation failed.')
-            if event.is_set():
+            if event.is_set() or (timeout is not None and time.time() >= 
max_time):
                 break
 
     def start_server(self, event=None, server=None):
@@ -1428,20 +1434,18 @@
 
     def auth_gssapi_keyex(self, username):
         """
-        Authenticate to the Server with GSS-API / SSPI if GSS-API Key Exchange
-        was the used key exchange method.
+        Authenticate to the server with GSS-API/SSPI if GSS-API kex is in use.
 
-        :param str username: The username to authenticate as
-        :param str gss_host: The target host
-        :param bool gss_deleg_creds: Delegate credentials or not
-        :return: list of auth types permissible for the next stage of
-                 authentication (normally empty)
-        :rtype: list
-        :raise BadAuthenticationType: if GSS-API Key Exchange was not performed
-                                      (and no event was passed in)
-        :raise AuthenticationException: if the authentication failed (and no
-            event was passed in)
-        :raise SSHException: if there was a network error
+        :param str username: The username to authenticate as.
+        :returns:
+            a `list` of auth types permissible for the next stage of
+            authentication (normally empty)
+        :raises BadAuthenticationType:
+            if GSS-API Key Exchange was not performed (and no event was passed
+            in)
+        :raises AuthenticationException:
+            if the authentication failed (and no event was passed in)
+        :raises SSHException: if there was a network error
         """
         if (not self.active) or (not self.initial_kex_done):
             # we should never try to authenticate unless we're on a secure link
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko.egg-info/PKG-INFO 
new/paramiko-2.1.1/paramiko.egg-info/PKG-INFO
--- old/paramiko-2.0.2/paramiko.egg-info/PKG-INFO       2016-07-26 
06:15:48.000000000 +0200
+++ new/paramiko-2.1.1/paramiko.egg-info/PKG-INFO       2016-12-13 
01:13:01.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: paramiko
-Version: 2.0.2
+Version: 2.1.1
 Summary: SSH2 protocol library
 Home-page: https://github.com/paramiko/paramiko/
 Author: Jeff Forcier
@@ -15,9 +15,8 @@
         Required packages:
             Cryptography
         
-        To install the `in-development version
-        
<https://github.com/paramiko/paramiko/tarball/master#egg=paramiko-dev>`_, use
-        `pip install paramiko==dev`.
+        To install the development version, ``pip install -e
+        git+https://github.com/paramiko/paramiko/#egg=paramiko``.
         
 Platform: Posix; MacOS X; Windows
 Classifier: Development Status :: 5 - Production/Stable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/paramiko.egg-info/pbr.json 
new/paramiko-2.1.1/paramiko.egg-info/pbr.json
--- old/paramiko-2.0.2/paramiko.egg-info/pbr.json       2016-07-21 
23:38:52.000000000 +0200
+++ new/paramiko-2.1.1/paramiko.egg-info/pbr.json       2016-12-01 
05:42:48.000000000 +0100
@@ -1 +1 @@
-{"is_release": false, "git_version": "0ae019c"}
\ No newline at end of file
+{"is_release": false, "git_version": "cfa81eb"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/setup.py new/paramiko-2.1.1/setup.py
--- old/paramiko-2.0.2/setup.py 2016-07-26 06:15:31.000000000 +0200
+++ new/paramiko-2.1.1/setup.py 2016-12-13 01:09:49.000000000 +0100
@@ -26,9 +26,8 @@
 Required packages:
     Cryptography
 
-To install the `in-development version
-<https://github.com/paramiko/paramiko/tarball/master#egg=paramiko-dev>`_, use
-`pip install paramiko==dev`.
+To install the development version, ``pip install -e
+git+https://github.com/paramiko/paramiko/#egg=paramiko``.
 '''
 
 import sys
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/tests/test_client.py 
new/paramiko-2.1.1/tests/test_client.py
--- old/paramiko-2.0.2/tests/test_client.py     2016-07-26 06:15:31.000000000 
+0200
+++ new/paramiko-2.1.1/tests/test_client.py     2016-12-13 01:12:11.000000000 
+0100
@@ -82,6 +82,16 @@
             return False
         return True
 
+    def check_channel_env_request(self, channel, name, value):
+        if name == 'INVALID_ENV':
+            return False
+
+        if not hasattr(channel, 'env'):
+            setattr(channel, 'env', {})
+
+        channel.env[name] = value
+        return True
+
 
 class SSHClientTest (unittest.TestCase):
 
@@ -369,3 +379,38 @@
             password='pygmalion',
         )
         self._test_connection(**kwargs)
+
+    def test_update_environment(self):
+        """
+        Verify that environment variables can be set by the client.
+        """
+        threading.Thread(target=self._run).start()
+
+        self.tc = paramiko.SSHClient()
+        self.tc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
+        self.assertEqual(0, len(self.tc.get_host_keys()))
+        self.tc.connect(self.addr, self.port, username='slowdive', 
password='pygmalion')
+
+        self.event.wait(1.0)
+        self.assertTrue(self.event.isSet())
+        self.assertTrue(self.ts.is_active())
+
+        target_env = {b'A': b'B', b'C': b'd'}
+
+        self.tc.exec_command('yes', environment=target_env)
+        schan = self.ts.accept(1.0)
+        self.assertEqual(target_env, getattr(schan, 'env', {}))
+        schan.close()
+
+        # Cannot use assertRaises in context manager mode as it is not 
supported
+        # in Python 2.6.
+        try:
+            # Verify that a rejection by the server can be detected
+            self.tc.exec_command('yes', environment={b'INVALID_ENV': b''})
+        except SSHException as e:
+            self.assertTrue('INVALID_ENV' in str(e),
+                            'Expected variable name in error message')
+            self.assertTrue(isinstance(e.args[1], SSHException),
+                            'Expected original SSHException in exception')
+        else:
+            self.assertFalse(False, 'SSHException was not thrown.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/tests/test_packetizer.py 
new/paramiko-2.1.1/tests/test_packetizer.py
--- old/paramiko-2.0.2/tests/test_packetizer.py 2016-07-26 06:15:31.000000000 
+0200
+++ new/paramiko-2.1.1/tests/test_packetizer.py 2016-12-13 01:09:49.000000000 
+0100
@@ -20,6 +20,7 @@
 Some unit tests for the ssh2 protocol in Transport.
 """
 
+import sys
 import unittest
 from hashlib import sha1
 
@@ -34,7 +35,6 @@
 x55 = byte_chr(0x55)
 x1f = byte_chr(0x1f)
 
-
 class PacketizerTest (unittest.TestCase):
 
     def test_1_write(self):
@@ -85,6 +85,8 @@
         self.assertEqual(900, m.get_int())
 
     def test_3_closed(self):
+        if sys.platform.startswith("win"): # no SIGALRM on windows
+            return
         rsock = LoopSocket()
         wsock = LoopSocket()
         rsock.link(wsock)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/paramiko-2.0.2/tests/test_util.py 
new/paramiko-2.1.1/tests/test_util.py
--- old/paramiko-2.0.2/tests/test_util.py       2016-07-25 20:58:23.000000000 
+0200
+++ new/paramiko-2.1.1/tests/test_util.py       2016-12-13 00:23:15.000000000 
+0100
@@ -66,7 +66,7 @@
 
 
 class UtilTest(unittest.TestCase):
-    def test_1_import(self):
+    def test_import(self):
         """
         verify that all the classes can be imported from paramiko.
         """
@@ -104,7 +104,7 @@
         self.assertTrue('SSHConfig' in symbols)
         self.assertTrue('util' in symbols)
 
-    def test_2_parse_config(self):
+    def test_parse_config(self):
         global test_config_file
         f = StringIO(test_config_file)
         config = paramiko.util.parse_ssh_config(f)
@@ -114,7 +114,7 @@
             {'host': ['*'], 'config': {'crazy': 'something dumb'}},
             {'host': ['spoo.example.com'], 'config': {'crazy': 'something 
else'}}])
 
-    def test_3_host_config(self):
+    def test_host_config(self):
         global test_config_file
         f = StringIO(test_config_file)
         config = paramiko.util.parse_ssh_config(f)
@@ -141,12 +141,12 @@
                 values
             )
 
-    def test_4_generate_key_bytes(self):
+    def test_generate_key_bytes(self):
         x = paramiko.util.generate_key_bytes(sha1, b'ABCDEFGH', 'This is my 
secret passphrase.', 64)
         hex = ''.join(['%02x' % byte_ord(c) for c in x])
         self.assertEqual(hex, 
'9110e2f6793b69363e58173e9436b13a5a4b339005741d5c680e505f57d871347b4239f14fb5c46e857d5e100424873ba849ac699cea98d729e57b3e84378e8b')
 
-    def test_5_host_keys(self):
+    def test_host_keys(self):
         with open('hostfile.temp', 'w') as f:
             f.write(test_hosts_file)
         try:
@@ -159,7 +159,7 @@
         finally:
             os.unlink('hostfile.temp')
 
-    def test_7_host_config_expose_issue_33(self):
+    def test_host_config_expose_issue_33(self):
         test_config_file = """
 Host www13.*
     Port 22
@@ -178,7 +178,7 @@
             {'hostname': host, 'port': '22'}
         )
 
-    def test_8_eintr_retry(self):
+    def test_eintr_retry(self):
         self.assertEqual('foo', paramiko.util.retry_on_signal(lambda: 'foo'))
 
         # Variables that are set by raises_intr
@@ -203,7 +203,7 @@
         self.assertRaises(AssertionError,
                           lambda: 
paramiko.util.retry_on_signal(raises_other_exception))
 
-    def test_9_proxycommand_config_equals_parsing(self):
+    def test_proxycommand_config_equals_parsing(self):
         """
         ProxyCommand should not split on equals signs within the value.
         """
@@ -222,7 +222,7 @@
                 'foo bar=biz baz'
             )
 
-    def test_10_proxycommand_interpolation(self):
+    def test_proxycommand_interpolation(self):
         """
         ProxyCommand should perform interpolation on the value
         """
@@ -248,7 +248,20 @@
                 val
             )
 
-    def test_11_host_config_test_negation(self):
+    def test_proxycommand_tilde_expansion(self):
+        """
+        Tilde (~) should be expanded inside ProxyCommand
+        """
+        config = paramiko.util.parse_ssh_config(StringIO("""
+Host test
+    ProxyCommand    ssh -F ~/.ssh/test_config bastion nc %h %p
+"""))
+        self.assertEqual(
+            'ssh -F %s/.ssh/test_config bastion nc test 22' % 
os.path.expanduser('~'),
+            host_config('test', config)['proxycommand']
+        )
+
+    def test_host_config_test_negation(self):
         test_config_file = """
 Host www13.* !*.example.com
     Port 22
@@ -270,7 +283,7 @@
             {'hostname': host, 'port': '8080'}
         )
 
-    def test_12_host_config_test_proxycommand(self):
+    def test_host_config_test_proxycommand(self):
         test_config_file = """
 Host proxy-with-equal-divisor-and-space
 ProxyCommand = foo=bar
@@ -298,7 +311,7 @@
                 values
             )
 
-    def test_11_host_config_test_identityfile(self):
+    def test_host_config_test_identityfile(self):
         test_config_file = """
 
 IdentityFile id_dsa0
@@ -328,7 +341,7 @@
                 values
             )
 
-    def test_12_config_addressfamily_and_lazy_fqdn(self):
+    def test_config_addressfamily_and_lazy_fqdn(self):
         """
         Ensure the code path honoring non-'all' AddressFamily doesn't asplode
         """
@@ -344,13 +357,13 @@
         self.assertEqual(32767, paramiko.util.clamp_value(32767, 32765, 32769))
         self.assertEqual(32769, paramiko.util.clamp_value(32767, 32770, 32769))
 
-    def test_13_config_dos_crlf_succeeds(self):
+    def test_config_dos_crlf_succeeds(self):
         config_file = StringIO("host abcqwerty\r\nHostName 127.0.0.1\r\n")
         config = paramiko.SSHConfig()
         config.parse(config_file)
         self.assertEqual(config.lookup("abcqwerty")["hostname"], "127.0.0.1")
 
-    def test_14_get_hostnames(self):
+    def test_get_hostnames(self):
         f = StringIO(test_config_file)
         config = paramiko.util.parse_ssh_config(f)
         self.assertEqual(config.get_hostnames(), set(['*', '*.example.com', 
'spoo.example.com']))


Reply via email to