commit python-paramiko for openSUSE:Factory
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 - mimi.vx@gmail.com + +- 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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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’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>) – 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>) – 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> – 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’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’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>) – 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> – 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’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>) – 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>) – set command’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>) – <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>) – 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>) – 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>) – 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>) – the command’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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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> - & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a> + & <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>) – 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>) – 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>) – 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>) – 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> – if GSS-API Key Exchange was not performed -(and no event was passed in)</li> -<li><strong>AuthenticationException</strong> – 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> – if GSS-API Key Exchange was not performed (and no event was passed +in)</li> +<li><strong>AuthenticationException</strong> – if the authentication failed (and no event was passed in)</li> <li><strong>SSHException</strong> – 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>) – 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>) – 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>) – 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> – 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> – 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’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’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 <robeypointer@gmail.com> +# Copyright (C) 2003-2007 Robey Pointer <robeypointer@gmail.com> # # 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']))
participants (1)
-
root@hilbertn.suse.de