openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2017
- 1 participants
- 679 discussions
Hello community,
here is the log from the commit of package python3-matplotlib for openSUSE:Factory checked in at 2017-01-25 23:25:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-matplotlib (Old)
and /work/SRC/openSUSE:Factory/.python3-matplotlib.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-matplotlib"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-matplotlib/python3-matplotlib.changes 2016-09-12 13:27:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-matplotlib.new/python3-matplotlib.changes 2017-01-25 23:25:44.720975365 +0100
@@ -1,0 +2,16 @@
+Tue Jan 17 17:04:31 UTC 2017 - toddrme2178(a)gmail.com
+
+- update to version 2.0.0
+ + Highlights include:
+ * 'viridis' is default color map instead of jet.
+ * Modernized the default color cycle.
+ * Many more functions respect the color cycle.
+ * Line dash patterns scale with linewidth.
+ * Change default font to DejaVu, now supports most Western alphabets (including Greek, Cyrillic and Latin with diacritics), math symbols and emoji out of the box.
+ * Faster text rendering.
+ * Improved auto-limits.
+ * Ticks out and only on the right and bottom spines by default.
+ * Improved auto-ticking, particularly for log scales and dates.
+ * Improved image support (imshow respects scales and eliminated a class of artifacts).
+
+-------------------------------------------------------------------
Old:
----
matplotlib-1.5.3.tar.gz
New:
----
matplotlib-2.0.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-matplotlib.spec ++++++
--- /var/tmp/diff_new_pack.WXeX2j/_old 2017-01-25 23:25:46.528702823 +0100
+++ /var/tmp/diff_new_pack.WXeX2j/_new 2017-01-25 23:25:46.532702219 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python3-matplotlib
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python3-matplotlib
-Version: 1.5.3
+Version: 2.0.0
Release: 0
Summary: Plotting Library for Python
License: SUSE-Matplotlib
@@ -37,10 +37,10 @@
BuildRequires: python3
BuildRequires: python3-CXX-devel >= 6.2.4
BuildRequires: python3-Cycler
-BuildRequires: python3-dateutil >= 1.1
BuildRequires: python3-devel
BuildRequires: python3-numpy-devel >= 1.6
BuildRequires: python3-pyparsing >= 1.5.6
+BuildRequires: python3-python-dateutil >= 1.1
BuildRequires: python3-pytz
BuildRequires: python3-setuptools
BuildRequires: python3-six >= 1.3
++++++ matplotlib-1.5.3.tar.gz -> matplotlib-2.0.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python3-matplotlib/matplotlib-1.5.3.tar.gz /work/SRC/openSUSE:Factory/.python3-matplotlib.new/matplotlib-2.0.0.tar.gz differ: char 5, line 1
1
0
Hello community,
here is the log from the commit of package python-pyroute2 for openSUSE:Factory checked in at 2017-01-25 23:25:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyroute2 (Old)
and /work/SRC/openSUSE:Factory/.python-pyroute2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyroute2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyroute2/python-pyroute2.changes 2016-12-08 00:30:43.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-pyroute2.new/python-pyroute2.changes 2017-01-25 23:25:38.369932889 +0100
@@ -1,0 +2,13 @@
+Tue Jan 10 17:18:02 UTC 2017 - dmueller(a)suse.com
+
+- update to 0.4.12:
+ * ipdb: #314 -- let users choose RTNL groups IPDB listens to
+ * ipdb: #321 -- isolate `net_ns_.*` setup in a separate code block
+ * ipdb: #322 -- IPv6 updates on interfaces in DOWN state
+ * ifinfmsg: allow absolute/relative paths in the net_ns_fd NLA
+ * ipset: #323 -- support setting counters on ipset add
+ * ipset: `headers()` command
+ * ipset: revisions
+ * ipset: #326 -- mark types
+
+-------------------------------------------------------------------
Old:
----
pyroute2-0.4.11.tar.gz
New:
----
pyroute2-0.4.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyroute2.spec ++++++
--- /var/tmp/diff_new_pack.rfZKZ7/_old 2017-01-25 23:25:38.817865356 +0100
+++ /var/tmp/diff_new_pack.rfZKZ7/_new 2017-01-25 23:25:38.821864752 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pyroute2
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: python-pyroute2
-Version: 0.4.11
+Version: 0.4.12
Release: 0
Summary: Python Netlink library
License: GPL-2.0+ or Apache-2.0
++++++ pyroute2-0.4.11.tar.gz -> pyroute2-0.4.12.tar.gz ++++++
++++ 25548 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package python-systemd for openSUSE:Factory checked in at 2017-01-25 23:25:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-systemd (Old)
and /work/SRC/openSUSE:Factory/.python-systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-systemd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-systemd/python-systemd.changes 2015-11-08 11:26:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-systemd.new/python-systemd.changes 2017-01-25 23:25:30.539113522 +0100
@@ -1,0 +2,5 @@
+Mon Jan 2 11:48:12 UTC 2017 - sebix+novell.com(a)sebix.at
+
+- add doc package
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-systemd.spec ++++++
--- /var/tmp/diff_new_pack.9sAQJP/_old 2017-01-25 23:25:30.899059254 +0100
+++ /var/tmp/diff_new_pack.9sAQJP/_new 2017-01-25 23:25:30.903058650 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-systemd
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -27,12 +27,18 @@
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig
+BuildRequires: python-Sphinx
BuildRequires: python-devel
BuildRequires: python-pytest
BuildRequires: python-setuptools
BuildRequires: systemd-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+%package doc
+Summary: Documentation for %name
+Group: Documentation
+Requires: %name = %version
+
%description
Python module for native access to the systemd facilities. Functionality is seperated into a number of modules:
* systemd.journal supports sending of structured messages to the journal and reading journal files,
@@ -40,11 +46,16 @@
* systemd.id128 provides functions for querying machine and boot identifiers and a lists of message identifiers provided by systemd,
* systemd.login wraps parts of libsystemd used to query logged in users and available seats and machines.
+%description doc
+Documentation and help files for %name
+
%prep
%setup -q
%build
make %{?_smp_mflags} build
+make sphinx-html
+%{__rm} -r build/html/.buildinfo build/html/.doctrees build/html/_sources
%install
%make_install
@@ -60,4 +71,7 @@
%doc LICENSE.txt README.md
%{python_sitearch}/*
+%files doc
+%doc build/html
+
%changelog
1
0
Hello community,
here is the log from the commit of package awesome-freedesktop for openSUSE:Factory checked in at 2017-01-25 23:25:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/awesome-freedesktop (Old)
and /work/SRC/openSUSE:Factory/.awesome-freedesktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "awesome-freedesktop"
Changes:
--------
--- /work/SRC/openSUSE:Factory/awesome-freedesktop/awesome-freedesktop.changes 2015-11-12 19:40:59.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.awesome-freedesktop.new/awesome-freedesktop.changes 2017-01-25 23:25:13.401697323 +0100
@@ -1,0 +2,11 @@
+Tue Jan 10 16:54:48 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 0.0~git20170109 (changes since 0.0+git20120906):
+ * Port to Lua 5.3.
+ * Port to Awesome 4.0.
+ * Fix gfind in utils.lua.
+ * desktop.lua: Fix a typo that caused Thunar to always be used.
+ * Look for icons in all directories from the specification.
+- Remove awesome-freedesktop-3.5-compat.patch: obsolete.
+
+-------------------------------------------------------------------
Old:
----
awesome-freedesktop-3.5-compat.patch
awesome-freedesktop-git201209061058.tar.xz
New:
----
awesome-freedesktop-0.0~git20170109.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ awesome-freedesktop.spec ++++++
--- /var/tmp/diff_new_pack.QEmcAz/_old 2017-01-25 23:25:13.861627978 +0100
+++ /var/tmp/diff_new_pack.QEmcAz/_new 2017-01-25 23:25:13.869626773 +0100
@@ -1,7 +1,7 @@
#
# spec file for package awesome-freedesktop
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,17 +16,17 @@
#
+%define _version 0.0~git20170109
Name: awesome-freedesktop
-Version: git201209061058
+Version: git201701091085
Release: 0
Summary: Desktop entries and menu for awesome
License: GPL-2.0+
Group: System/GUI/Other
-Url: https://github.com/terceiro/awesome-freedesktop
-Source: %{name}-%{version}.tar.xz
-# PATCH-FIX-OPENSUSE awesome-freedesktop-3.5-compat.patch sor.alexei(a)meowr.ru -- Use upstream menubar.utils to gain awesome 3.5+ compatibility.
-Patch0: awesome-freedesktop-3.5-compat.patch
-Requires: awesome >= 3.5.0
+Url: https://github.com/copycat-killer/awesome-freedesktop
+Source: %{name}-%{_version}.tar.gz
+BuildRequires: awesome >= 4.0
+Requires: awesome >= 4.0
BuildArch: noarch
%description
@@ -41,20 +41,18 @@
You can choose any icon theme that's installed in %{_datadir}/icons/.
%prep
-%setup -q -n %{name}
-%patch0 -p1
-# Superseded by menubar.utils (doesn't work with awesome 3.5+).
-rm -f freedesktop/utils.lua
+%setup -q -n %{name}-%{_version}
%build
+# Nothing to build.
%install
mkdir -p %{buildroot}%{_datadir}/awesome/lib/freedesktop/
-install -m 0644 freedesktop/*.lua %{buildroot}%{_datadir}/awesome/lib/freedesktop/.
+install -pm 0644 *.lua %{buildroot}%{_datadir}/awesome/lib/freedesktop/
%files
%defattr(-,root,root)
-%doc README TODO
+%doc LICENSE README.rst
%dir %{_datadir}/awesome/
%dir %{_datadir}/awesome/lib/
%{_datadir}/awesome/lib/freedesktop/
1
0
Hello community,
here is the log from the commit of package python3-bpython for openSUSE:Factory checked in at 2017-01-25 23:24:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-bpython (Old)
and /work/SRC/openSUSE:Factory/.python3-bpython.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-bpython"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-bpython/python3-bpython.changes 2016-10-20 23:07:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-bpython.new/python3-bpython.changes 2017-01-25 23:24:24.261106507 +0100
@@ -1,0 +2,11 @@
+Sun Dec 25 16:20:45 UTC 2016 - badshah400(a)gmail.com
+
+- Add python3-bpython-appdata-fix.patch for a trivial fix up of
+ <p> nodes in description, incorrect closure led to description
+ not showing in full on apps like gnome-software; patch sent
+ upstream (gh#bpython/bpython#662).
+- Add a "(python3)" tag to the <name> node of the appdata file
+ to distinguish the app from the otherwise identical-in-content
+ appdata from python-bpython.
+
+-------------------------------------------------------------------
New:
----
python3-bpython-appdata-fix.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-bpython.spec ++++++
--- /var/tmp/diff_new_pack.EmvXMq/_old 2017-01-25 23:24:24.701040174 +0100
+++ /var/tmp/diff_new_pack.EmvXMq/_new 2017-01-25 23:24:24.701040174 +0100
@@ -24,6 +24,8 @@
License: MIT
Group: Development/Languages/Python
Source: http://www.bpython-interpreter.org/releases/bpython-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM python3-bpython-appdata-fix.patch gh#bpython/bpython#662 badshah400(a)gmail.com -- Trivial fix up <p> nodes in description, incorrect closure led to description not showing in full on apps like gnome-software; patch sent upstream
+Patch0: python3-bpython-appdata-fix.patch
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-six
@@ -63,6 +65,10 @@
%prep
%setup -q -n bpython-%{version}
+%patch0 -p1
+
+# ADD A "(python3)" TAG TO THE NAME TO DISTINGUISH IT FROM THE OTHERWISE IDENTICAL CONTENT APPDATA FOR python-bpython
+sed -i -e "s|<name>bpython interpreter</name>|<name>bpython (python3) interpreter</name>|" data/bpython.appdata.xml
mv data/bpython.desktop data/bpython3.desktop
mv data/bpython.png data/bpython3.png
++++++ python3-bpython-appdata-fix.patch ++++++
commit 36457741e9d5fcdef518a5fd76a6a691387a5b88
Author: Atri Bhattacharya <badshah400(a)gmail.com>
Date: Sun Dec 25 21:54:14 2016 +0530
Close <p> node in description correctly.
This trivial markup fix ensures that the <p> node is closed
in the right place, so that when software centers like
gnome-software show the appdata, the description section does
not get curtailed at the place where the <ul> begins.
Index: bpython-0.15/data/bpython.appdata.xml
===================================================================
--- bpython-0.15.orig/data/bpython.appdata.xml
+++ bpython-0.15/data/bpython.appdata.xml
@@ -11,16 +11,16 @@
<p>
bpython is a fancy interface to the Python interpreter. It has the
following features:
- <ul>
- <li>In-line syntac highlighting.</li>
- <li>Readline-like autocomplete with suggesstion displayed as you type.</li>
- <li>Expected parameter list for any Python function.</li>
- <li>"Rewind" function to pop the last line of code from memory and re-evaluate.</li>
- <li>Send the code you've entered off to a pastebin.</li>
- <li>Save the code you've entered to a file.</li>
- <li>Auto-indentation.</li>
- </ul>
</p>
+ <ul>
+ <li>In-line syntac highlighting.</li>
+ <li>Readline-like autocomplete with suggesstion displayed as you type.</li>
+ <li>Expected parameter list for any Python function.</li>
+ <li>"Rewind" function to pop the last line of code from memory and re-evaluate.</li>
+ <li>Send the code you've entered off to a pastebin.</li>
+ <li>Save the code you've entered to a file.</li>
+ <li>Auto-indentation.</li>
+ </ul>
</description>
<url type="homepage">http://www.bpython-interpreter.org/</url>
<url type="bugtracker">https://github.com/bpython/bpython/issues</url>
1
0
Hello community,
here is the log from the commit of package python3-sleekxmpp for openSUSE:Factory checked in at 2017-01-25 23:24:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-sleekxmpp (Old)
and /work/SRC/openSUSE:Factory/.python3-sleekxmpp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-sleekxmpp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-sleekxmpp/python3-sleekxmpp.changes 2016-09-13 22:23:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-sleekxmpp.new/python3-sleekxmpp.changes 2017-01-25 23:24:18.306004417 +0100
@@ -1,0 +2,11 @@
+Sat Dec 10 09:12:08 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Add sleekxmpp-fix-legacyauth.patch by nyov: Fix an error in
+ legacyauth support.
+- Add sleekxmpp-check-roster-push-origin.patch by mathieui: Check
+ origin of roster pushes (slixmpp commits ffdb6ff, ffd9436,
+ bsc#1014976).
+ See Gajim's CVE-2015-8688 and
+ https://gultsch.de/gajim_roster_push_and_message_interception.html
+
+-------------------------------------------------------------------
New:
----
sleekxmpp-check-roster-push-origin.patch
sleekxmpp-fix-legacyauth.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-sleekxmpp.spec ++++++
--- /var/tmp/diff_new_pack.Iji3ua/_old 2017-01-25 23:24:18.813927832 +0100
+++ /var/tmp/diff_new_pack.Iji3ua/_new 2017-01-25 23:24:18.817927229 +0100
@@ -27,6 +27,10 @@
Source: https://files.pythonhosted.org/packages/source/s/%{_name}/%{_name}-%{versio…
# PATCH-FIX-OPENSUSE sleekxmpp-fix-dnspython.patch sor.alexei(a)meowr.ru -- Fix compatibility with recent dnspython.
Patch0: %{_name}-fix-dnspython.patch
+# PATCH-FIX-OPENSUSE sleekxmpp-fix-legacyauth.patch nyov(a)nexnode.net -- Fix an error in legacyauth support.
+Patch1: %{_name}-fix-legacyauth.patch
+# PATCH-FIX-OPENSUSE sleekxmpp-check-roster-push-origin.patch bsc#1014976 mathieui(a)mathieui.net -- Check origin of roster pushes (slixmpp commits ffdb6ff, ffd9436).
+Patch2: %{_name}-check-roster-push-origin.patch
BuildRequires: python3
BuildRequires: python3-dnspython
BuildRequires: python3-xml
@@ -42,6 +46,8 @@
%prep
%setup -q -n %{_name}-%{version}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
%build
python3 setup.py build
++++++ sleekxmpp-check-roster-push-origin.patch ++++++
--- a/sleekxmpp/clientxmpp.py
+++ b/sleekxmpp/clientxmpp.py
@@ -16,6 +16,7 @@ from __future__ import absolute_import,
import logging
+from sleekxmpp.jid import JID
from sleekxmpp.stanza import StreamFeatures
from sleekxmpp.basexmpp import BaseXMPP
from sleekxmpp.exceptions import XMPPError
@@ -99,7 +100,17 @@ class ClientXMPP(BaseXMPP):
self.add_event_handler('roster_update', self._handle_roster)
self.register_stanza(StreamFeatures)
-
+ def roster_push_filter(iq):
+ from_ = iq['from']
+ if from_ and from_ != JID('') and from_ != self.boundjid.bare:
+ reply = iq.reply()
+ reply['type'] = 'error'
+ reply['error']['type'] = 'cancel'
+ reply['error']['code'] = 503
+ reply['error']['condition'] = 'service-unavailable'
+ reply.send()
+ return
+ self.event('roster_update', iq)
self.register_handler(
Callback('Stream Features',
MatchXPath('{%s}features' % self.stream_ns),
@@ -107,7 +118,7 @@ class ClientXMPP(BaseXMPP):
self.register_handler(
Callback('Roster Update',
StanzaPath('iq@type=set/roster'),
- lambda iq: self.event('roster_update', iq)))
+ roster_push_filter))
# Setup default stream features
self.register_plugin('feature_starttls')
++++++ sleekxmpp-fix-legacyauth.patch ++++++
--- a/sleekxmpp/plugins/xep_0078/legacyauth.py
+++ b/sleekxmpp/plugins/xep_0078/legacyauth.py
@@ -112,7 +112,7 @@ class XEP_0078(BasePlugin):
stream_id = bytes(self.xmpp.stream_id, encoding='utf-8')
password = bytes(self.xmpp.password, encoding='utf-8')
- digest = hashlib.sha1(b'%s%s' % (stream_id, password)).hexdigest()
+ digest = hashlib.sha1('%s%s' % (stream_id, password)).hexdigest()
iq['auth']['digest'] = digest
else:
log.warning('Authenticating via jabber:iq:auth Plain.')
1
0
25 Jan '17
Hello community,
here is the log from the commit of package python3-jupyter_ipywidgets for openSUSE:Factory checked in at 2017-01-25 23:24:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-jupyter_ipywidgets (Old)
and /work/SRC/openSUSE:Factory/.python3-jupyter_ipywidgets.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-jupyter_ipywidgets"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-jupyter_ipywidgets/python3-jupyter_ipywidgets.changes 2016-10-20 23:09:40.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-jupyter_ipywidgets.new/python3-jupyter_ipywidgets.changes 2017-01-25 23:24:12.586866755 +0100
@@ -1,0 +2,5 @@
+Fri Dec 9 03:58:34 UTC 2016 - qantas94heavy(a)gmail.com
+
+- Remove unnecessary dependency on npm
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python3-jupyter_ipywidgets.spec ++++++
--- /var/tmp/diff_new_pack.FanQZI/_old 2017-01-25 23:24:13.226770269 +0100
+++ /var/tmp/diff_new_pack.FanQZI/_new 2017-01-25 23:24:13.234769063 +0100
@@ -38,13 +38,6 @@
Requires: python3-jupyter_ipython >= 4
Requires: python3-jupyter_notebook
Requires: python3-traitlets
-%if 0%{?suse_version} > 1320
-BuildRequires: nodejs-npm
-Requires: nodejs-npm
-%else
-BuildRequires: npm
-Requires: npm
-%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
1
0
Hello community,
here is the log from the commit of package python-zeroconf for openSUSE:Factory checked in at 2017-01-25 23:23:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zeroconf (Old)
and /work/SRC/openSUSE:Factory/.python-zeroconf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zeroconf"
Changes:
--------
New Changes file:
--- /dev/null 2016-12-08 12:47:06.134691974 +0100
+++ /work/SRC/openSUSE:Factory/.python-zeroconf.new/python-zeroconf.changes 2017-01-25 23:23:43.263288281 +0100
@@ -0,0 +1,44 @@
+-------------------------------------------------------------------
+Wed Dec 28 08:51:37 UTC 2016 - tbechtold(a)suse.com
+
+- Use pypi.io as Source
+
+-------------------------------------------------------------------
+Sun Jul 17 22:36:46 UTC 2016 - antoine.belvire(a)laposte.net
+
+- Update to 0.17.6:
+ * Many improvements to address race conditions and exceptions
+ during ZC() startup and shutdown, thanks to: morpav, veawor,
+ justingiorgi, herczy, stephenrauch
+ * Added more test coverage: strahlex, stephenrauch
+ * Stephen Rauch contributed:
+ + Speed up browser startup
+ + Add ZeroconfServiceTypes() query class to discover all
+ advertised service types
+ + Add full validation for service names, types and subtypes
+ + Fix for subtype browsing
+ + Fix DNSHInfo support
+
+-------------------------------------------------------------------
+Wed Mar 16 19:46:09 UTC 2016 - antoine.belvire(a)laposte.net
+
+- Fix build on SLE 11: avoid BuildArch noarch.
+
+-------------------------------------------------------------------
+Wed Mar 16 17:41:13 UTC 2016 - antoine.belvire(a)laposte.net
+
+- Update to 0.17.5:
+ * Fix OpenBSD compatibility, thanks to Alessio Sergi
+ * Fix race condition on ServiceBrowser startup, thanks to
+ gbiddison
+ * Fix installation on some Python 3 systems, thanks to Per
+ Sandström
+ * Fixed "size change during iteration" bug on Python 3, thanks to
+ gbiddison
+
+-------------------------------------------------------------------
+Thu Mar 10 18:57:49 UTC 2016 - antoine.belvire(a)laposte.net
+
+- New package: python-zeroconf-0.17.4
+- Add python-zeroconf-0.17.4-enum34-instead-of-enum-compat.patch:
+there is no need for a virtual python-enum-compat package here.
New:
----
python-zeroconf-0.17.4-enum34-instead-of-enum-compat.patch
python-zeroconf.changes
python-zeroconf.spec
zeroconf-0.17.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zeroconf.spec ++++++
#
# spec file for package python-zeroconf
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python-zeroconf
Version: 0.17.6
Release: 0
Summary: Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)
License: LGPL-2.0
Group: Development/Languages/Python
Url: https://github.com/jstasiak/python-zeroconf
Source: https://pypi.io/packages/source/z/zeroconf/zeroconf-%{version}.tar.gz
# PATCH-FIX-OPENSUSE python-zeroconf-0.17.4-enum34-instead-of-enum-compat.patch -- replace enum-compat by enum34 (picked from Debian)
Patch: python-zeroconf-0.17.4-enum34-instead-of-enum-compat.patch
BuildRequires: python-devel
BuildRequires: python-setuptools
Requires: python-enum34
Requires: python-netifaces
Requires: python-six
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1110
BuildArch: noarch
%endif
%description
This is fork of pyzeroconf, Multicast DNS Service Discovery for Python,
originally by Paul Scott-Murphy, modified by William McBrine.
Compatible with:
* Bonjour
* Avahi
Compared to some other Zeroconf/Bonjour/Avahi Python packages, python-zeroconf:
* isn't tied to Bonjour or Avahi
* doesn't use D-Bus
* doesn't force you to use particular event loop or Twisted
%prep
%setup -q -n zeroconf-%{version}
%patch -p1
%build
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
%files
%defattr(-,root,root,-)
%doc README.rst
%{python_sitelib}/*
%changelog
++++++ python-zeroconf-0.17.4-enum34-instead-of-enum-compat.patch ++++++
>From eaa2a8ed38eaa8e15036974101f11cb95eec8db1 Mon Sep 17 00:00:00 2001
From: Ruben Undheim <ruben.undheim(a)gmail.com>
Date: Sun, 6 Mar 2016 10:26:23 +0100
Subject: Set install_requires to enum34 instead of enum-compat
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 54e05e1..653d963 100755
--- a/setup.py
+++ b/setup.py
@@ -51,7 +51,7 @@ setup(
'mDNS',
],
install_requires=[
- 'enum-compat',
+ 'enum34',
'netifaces',
'six',
],
1
0
Hello community,
here is the log from the commit of package python-gevent for openSUSE:Factory checked in at 2017-01-25 23:23:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-gevent (Old)
and /work/SRC/openSUSE:Factory/.python-gevent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-gevent"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-gevent/python-gevent.changes 2016-03-16 10:35:25.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-gevent.new/python-gevent.changes 2017-01-25 23:23:25.421978538 +0100
@@ -1,0 +2,26 @@
+Tue Dec 13 14:46:50 UTC 2016 - dmueller(a)suse.com
+
+- update to 1.1.2:
+ * Python 2: ``sendall`` on a non-blocking socket could spuriously fail
+ with a timeout.
+ * If ``sys.stderr`` has been monkey-patched (not recommended),
+ exceptions that the hub reports aren't lost and can still be caught.
+ Reported in :issue:`825` by Jelle Smet.
+ * :class:`selectors.SelectSelector` is properly monkey-patched
+ regardless of the order of imports. Reported in :issue:`835` by
+ Przemysław Węgrzyn.
+ * Python 2: ``reload(site)`` no longer fails with a ``TypeError`` if
+ gevent has been imported. Reported in :issue:`805` by Jake Hilton.
+ * Nested callbacks that set and clear an Event no longer cause
+ ``wait`` to return prematurely. Reported in :issue:`771` by Sergey
+ Vasilyev.
+ * Fix build on Solaris 10. Reported in :issue:`777` by wiggin15.
+ * The ``ref`` parameter to :func:`gevent.os.fork_and_watch` was being ignored.
+ * Python 3: :class:`gevent.queue.Channel` is now correctly iterable, instead of
+ raising a :exc:`TypeError`.
+ * Python 3: Add support for :meth:`socket.socket.sendmsg`,
+ :meth:`socket.socket.recvmsg` and :meth:`socket.socket.recvmsg_into`
+ on platforms where they are defined. Initial :pr:`773` by Jakub
+ Klama.
+
+-------------------------------------------------------------------
Old:
----
gevent-1.1.0.tar.gz
New:
----
gevent-1.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-gevent.spec ++++++
--- /var/tmp/diff_new_pack.hOex8N/_old 2017-01-25 23:23:25.961897124 +0100
+++ /var/tmp/diff_new_pack.hOex8N/_new 2017-01-25 23:23:25.965896521 +0100
@@ -20,13 +20,13 @@
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
%endif
Name: python-gevent
-Version: 1.1.0
+Version: 1.1.2
Release: 0
Summary: Python network library that uses greenlet and libevent
License: MIT
Group: Development/Languages/Python
Url: http://www.gevent.org/
-Source: http://pypi.python.org/packages/source/g/gevent/gevent-%{version}.tar.gz
+Source: https://pypi.io/packages/source/g/gevent/gevent-%{version}.tar.gz
BuildRequires: libcares-devel
BuildRequires: libev-devel
#BuildRequires: python-Sphinx
++++++ gevent-1.1.0.tar.gz -> gevent-1.1.2.tar.gz ++++++
++++ 31302 lines of diff (skipped)
1
0
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(a)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(a)gmail.com>
+# Copyright (C) 2003-2007 Robey Pointer <robeypointer(a)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']))
1
0