version 1.7.7
This commit is contained in:
parent
db1c1efb7f
commit
18f6a836da
3
Makefile
3
Makefile
|
@ -31,6 +31,7 @@
|
||||||
# desmond (06jul08) - 1.7.4
|
# desmond (06jul08) - 1.7.4
|
||||||
# ernest (19jul09) - 1.7.5
|
# ernest (19jul09) - 1.7.5
|
||||||
# fanny (1nov09) - 1.7.6
|
# fanny (1nov09) - 1.7.6
|
||||||
|
# george (21may11) - 1.7.7
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(wildcard /sbin/md5),/sbin/md5)
|
ifeq ($(wildcard /sbin/md5),/sbin/md5)
|
||||||
|
@ -48,7 +49,7 @@ release: docs
|
||||||
cd dist && $(MD5SUM) paramiko*.zip *.gz > md5-sums
|
cd dist && $(MD5SUM) paramiko*.zip *.gz > md5-sums
|
||||||
cd dist && gpg -ba paramiko*.zip
|
cd dist && gpg -ba paramiko*.zip
|
||||||
cd dist && gpg -ba paramiko*.gz
|
cd dist && gpg -ba paramiko*.gz
|
||||||
|
|
||||||
|
|
||||||
docs: always
|
docs: always
|
||||||
epydoc --no-private -o docs/ paramiko
|
epydoc --no-private -o docs/ paramiko
|
||||||
|
|
16
NEWS
16
NEWS
|
@ -8,10 +8,20 @@ Highlights of what's new in each release:
|
||||||
Releases
|
Releases
|
||||||
========
|
========
|
||||||
|
|
||||||
Unreleased
|
v1.7.7 (George) 21may11
|
||||||
----------
|
-----------------------
|
||||||
* Use Crypto.Random rather than Crypto.Util.RandomPool.
|
* Make the verification phase of SFTP.put optional (Larry Wright)
|
||||||
|
* Patches to fix AIX support (anonymous)
|
||||||
|
* Patch from Michele Bertoldi to allow compression to be turned on in the
|
||||||
|
client constructor.
|
||||||
|
* Patch from Shad Sharma to raise an exception if the transport isn't active
|
||||||
|
when you try to open a new channel.
|
||||||
|
* Stop leaking file descriptors in the SSH agent (John Adams)
|
||||||
|
* More fixes for Windows address family support (Andrew Bennetts)
|
||||||
|
* Use Crypto.Random rather than Crypto.Util.RandomPool
|
||||||
(Gary van der Merwe, #271791)
|
(Gary van der Merwe, #271791)
|
||||||
|
* Support for openssl keys (tehfink)
|
||||||
|
* Fix multi-process support by calling Random.atfork (sugarc0de)
|
||||||
|
|
||||||
v1.7.6 (Fanny) 1nov09
|
v1.7.6 (Fanny) 1nov09
|
||||||
---------------------
|
---------------------
|
||||||
|
|
35
README
35
README
|
@ -9,10 +9,10 @@ paramiko
|
||||||
:Homepage: http://www.lag.net/paramiko/
|
:Homepage: http://www.lag.net/paramiko/
|
||||||
|
|
||||||
|
|
||||||
paramiko 1.7.6
|
paramiko 1.7.7
|
||||||
==============
|
==============
|
||||||
|
|
||||||
"Fanny" release, 1 november 2009
|
"George" release, 21 may 2011
|
||||||
|
|
||||||
|
|
||||||
What
|
What
|
||||||
|
@ -38,18 +38,9 @@ that should have come with this archive.
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
- python 2.3 <http://www.python.org/>
|
- python 2.3 or better <http://www.python.org/>
|
||||||
(python 2.2 is also supported, but not recommended)
|
(python 2.2 is also supported, but not recommended)
|
||||||
- pycrypto 1.9+ <http://www.amk.ca/python/code/crypto.html>
|
- pycrypto 2.1 or better <https://www.dlitz.net/software/pycrypto/>
|
||||||
(2.0 works too)
|
|
||||||
|
|
||||||
pycrypto compiled for Win32 can be downloaded from the HashTar homepage:
|
|
||||||
http://nitace.bsd.uchicago.edu:8080/hashtar
|
|
||||||
|
|
||||||
you can also build it yourself using the free MinGW tools and this command
|
|
||||||
line (thanks to Roger Binns for the info)::
|
|
||||||
|
|
||||||
python setup.py build --compiler=mingw32 bdist_wininst
|
|
||||||
|
|
||||||
If you have setuptools, you can build and install paramiko and all its
|
If you have setuptools, you can build and install paramiko and all its
|
||||||
dependencies with this command (as root)::
|
dependencies with this command (as root)::
|
||||||
|
@ -60,34 +51,34 @@ dependencies with this command (as root)::
|
||||||
Portability
|
Portability
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
i code and test this library on Linux and MacOS X. for that reason, i'm
|
i code and test this library on Linux and MacOS X. for that reason, i'm
|
||||||
pretty sure that it works for all posix platforms, including MacOS. it
|
pretty sure that it works for all posix platforms, including MacOS. it
|
||||||
should also work on Windows, though i don't test it as frequently there.
|
should also work on Windows, though i don't test it as frequently there.
|
||||||
if you run into Windows problems, send me a patch: portability is important
|
if you run into Windows problems, send me a patch: portability is important
|
||||||
to me.
|
to me.
|
||||||
|
|
||||||
python 2.2 may work, thanks to some patches from Roger Binns. things to
|
python 2.2 may work, thanks to some patches from Roger Binns. things to
|
||||||
watch out for:
|
watch out for:
|
||||||
|
|
||||||
* sockets in 2.2 don't support timeouts, so the 'select' module is
|
* sockets in 2.2 don't support timeouts, so the 'select' module is
|
||||||
imported to do polling.
|
imported to do polling.
|
||||||
* logging is mostly stubbed out. it works just enough to let paramiko
|
* logging is mostly stubbed out. it works just enough to let paramiko
|
||||||
create log files for debugging, if you want them. to get real logging,
|
create log files for debugging, if you want them. to get real logging,
|
||||||
you can backport python 2.3's logging package. Roger has done that
|
you can backport python 2.3's logging package. Roger has done that
|
||||||
already:
|
already:
|
||||||
http://sourceforge.net/project/showfiles.php?group_id=75211&package_id=113804
|
http://sourceforge.net/project/showfiles.php?group_id=75211&package_id=113804
|
||||||
|
|
||||||
you really should upgrade to python 2.3. laziness is no excuse! :)
|
you really should upgrade to python 2.3. laziness is no excuse! :)
|
||||||
|
|
||||||
some python distributions don't include the utf-8 string encodings, for
|
some python distributions don't include the utf-8 string encodings, for
|
||||||
reasons of space (misdirected as that is). if your distribution is
|
reasons of space (misdirected as that is). if your distribution is
|
||||||
missing encodings, you'll see an error like this::
|
missing encodings, you'll see an error like this::
|
||||||
|
|
||||||
LookupError: no codec search functions registered: can't find encoding
|
LookupError: no codec search functions registered: can't find encoding
|
||||||
|
|
||||||
this means you need to copy string encodings over from a working system.
|
this means you need to copy string encodings over from a working system.
|
||||||
(it probably only happens on embedded systems, not normal python
|
(it probably only happens on embedded systems, not normal python
|
||||||
installs.) Valeriy Pogrebitskiy says the best place to look is
|
installs.) Valeriy Pogrebitskiy says the best place to look is
|
||||||
``.../lib/python*/encodings/__init__.py``.
|
``.../lib/python*/encodings/__init__.py``.
|
||||||
|
|
||||||
|
|
||||||
|
|
158
README.rst
158
README.rst
|
@ -1,158 +0,0 @@
|
||||||
|
|
||||||
========
|
|
||||||
paramiko
|
|
||||||
========
|
|
||||||
|
|
||||||
:Paramiko: Python SSH module
|
|
||||||
:Copyright: Copyright (c) 2003-2009 Robey Pointer <robeypointer@gmail.com>
|
|
||||||
:License: LGPL
|
|
||||||
:Homepage: http://www.lag.net/paramiko/
|
|
||||||
|
|
||||||
|
|
||||||
paramiko 1.7.6
|
|
||||||
==============
|
|
||||||
|
|
||||||
"Fanny" release, 1 november 2009
|
|
||||||
|
|
||||||
|
|
||||||
What
|
|
||||||
----
|
|
||||||
|
|
||||||
"paramiko" is a combination of the esperanto words for "paranoid" and
|
|
||||||
"friend". it's a module for python 2.2+ that implements the SSH2 protocol
|
|
||||||
for secure (encrypted and authenticated) connections to remote machines.
|
|
||||||
unlike SSL (aka TLS), SSH2 protocol does not require hierarchical
|
|
||||||
certificates signed by a powerful central authority. you may know SSH2 as
|
|
||||||
the protocol that replaced telnet and rsh for secure access to remote
|
|
||||||
shells, but the protocol also includes the ability to open arbitrary
|
|
||||||
channels to remote services across the encrypted tunnel (this is how sftp
|
|
||||||
works, for example).
|
|
||||||
|
|
||||||
it is written entirely in python (no C or platform-dependent code) and is
|
|
||||||
released under the GNU LGPL (lesser GPL).
|
|
||||||
|
|
||||||
the package and its API is fairly well documented in the "doc/" folder
|
|
||||||
that should have come with this archive.
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
|
||||||
|
|
||||||
- python 2.3 or better <http://www.python.org/>
|
|
||||||
(python 2.2 is also supported, but not recommended)
|
|
||||||
- pycrypto 2.1 or better <https://www.dlitz.net/software/pycrypto/>
|
|
||||||
|
|
||||||
If you have setuptools, you can build and install paramiko and all its
|
|
||||||
dependencies with this command (as root)::
|
|
||||||
|
|
||||||
easy_install ./
|
|
||||||
|
|
||||||
|
|
||||||
Portability
|
|
||||||
-----------
|
|
||||||
|
|
||||||
i code and test this library on Linux and MacOS X. for that reason, i'm
|
|
||||||
pretty sure that it works for all posix platforms, including MacOS. it
|
|
||||||
should also work on Windows, though i don't test it as frequently there.
|
|
||||||
if you run into Windows problems, send me a patch: portability is important
|
|
||||||
to me.
|
|
||||||
|
|
||||||
python 2.2 may work, thanks to some patches from Roger Binns. things to
|
|
||||||
watch out for:
|
|
||||||
|
|
||||||
* sockets in 2.2 don't support timeouts, so the 'select' module is
|
|
||||||
imported to do polling.
|
|
||||||
* logging is mostly stubbed out. it works just enough to let paramiko
|
|
||||||
create log files for debugging, if you want them. to get real logging,
|
|
||||||
you can backport python 2.3's logging package. Roger has done that
|
|
||||||
already:
|
|
||||||
http://sourceforge.net/project/showfiles.php?group_id=75211&package_id=113804
|
|
||||||
|
|
||||||
you really should upgrade to python 2.3. laziness is no excuse! :)
|
|
||||||
|
|
||||||
some python distributions don't include the utf-8 string encodings, for
|
|
||||||
reasons of space (misdirected as that is). if your distribution is
|
|
||||||
missing encodings, you'll see an error like this::
|
|
||||||
|
|
||||||
LookupError: no codec search functions registered: can't find encoding
|
|
||||||
|
|
||||||
this means you need to copy string encodings over from a working system.
|
|
||||||
(it probably only happens on embedded systems, not normal python
|
|
||||||
installs.) Valeriy Pogrebitskiy says the best place to look is
|
|
||||||
``.../lib/python*/encodings/__init__.py``.
|
|
||||||
|
|
||||||
|
|
||||||
Bugs & Support
|
|
||||||
--------------
|
|
||||||
|
|
||||||
there's a launchpage page for paramiko, with a bug tracker:
|
|
||||||
|
|
||||||
https://launchpad.net/paramiko/
|
|
||||||
|
|
||||||
this is the primary place to file and browse bug reports.
|
|
||||||
|
|
||||||
there's also a low-traffic mailing list for support and discussions:
|
|
||||||
|
|
||||||
http://www.lag.net/mailman/listinfo/paramiko
|
|
||||||
|
|
||||||
|
|
||||||
Demo
|
|
||||||
----
|
|
||||||
|
|
||||||
several demo scripts come with paramiko to demonstrate how to use it.
|
|
||||||
probably the simplest demo of all is this::
|
|
||||||
|
|
||||||
import paramiko, base64
|
|
||||||
key = paramiko.RSAKey(data=base64.decodestring('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')
|
|
||||||
client.close()
|
|
||||||
|
|
||||||
...which 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 host key. if you skip host key verification, the
|
|
||||||
connection is not secure!)
|
|
||||||
|
|
||||||
the following example scripts (in demos/) get progressively more detailed:
|
|
||||||
|
|
||||||
:demo_simple.py:
|
|
||||||
calls invoke_shell() and emulates a terminal/tty through which you can
|
|
||||||
execute commands interactively on a remote server. think of it as a
|
|
||||||
poor man's ssh command-line client.
|
|
||||||
|
|
||||||
:demo.py:
|
|
||||||
same as demo_simple.py, but allows you to authenticiate using a
|
|
||||||
private key, attempts to use an SSH-agent if present, and uses the long
|
|
||||||
form of some of the API calls.
|
|
||||||
|
|
||||||
:forward.py:
|
|
||||||
command-line script to set up port-forwarding across an ssh transport.
|
|
||||||
(requires python 2.3.)
|
|
||||||
|
|
||||||
:demo_sftp.py:
|
|
||||||
opens an sftp session and does a few simple file operations.
|
|
||||||
|
|
||||||
:demo_server.py:
|
|
||||||
an ssh server that listens on port 2200 and accepts a login for
|
|
||||||
'robey' (password 'foo'), and pretends to be a BBS. meant to be a
|
|
||||||
very simple demo of writing an ssh server.
|
|
||||||
|
|
||||||
|
|
||||||
Use
|
|
||||||
---
|
|
||||||
|
|
||||||
the demo scripts are probably the best example of how to use this package.
|
|
||||||
there is also a lot of documentation, generated with epydoc, in the doc/
|
|
||||||
folder. point your browser there. seriously, do it. mad props to
|
|
||||||
epydoc, which actually motivated me to write more documentation than i
|
|
||||||
ever would have before.
|
|
||||||
|
|
||||||
there are also unit tests here::
|
|
||||||
|
|
||||||
$ python ./test.py
|
|
||||||
|
|
||||||
which will verify that most of the core components are working correctly.
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2003-2009 Robey Pointer <robeypointer@gmail.com>
|
# Copyright (C) 2003-2011 Robey Pointer <robeypointer@gmail.com>
|
||||||
#
|
#
|
||||||
# This file is part of paramiko.
|
# This file is part of paramiko.
|
||||||
#
|
#
|
||||||
|
@ -47,7 +47,7 @@ released under the GNU Lesser General Public License (LGPL).
|
||||||
|
|
||||||
Website: U{http://www.lag.net/paramiko/}
|
Website: U{http://www.lag.net/paramiko/}
|
||||||
|
|
||||||
@version: 1.7.6 (Fanny)
|
@version: 1.7.7 (George)
|
||||||
@author: Robey Pointer
|
@author: Robey Pointer
|
||||||
@contact: robeypointer@gmail.com
|
@contact: robeypointer@gmail.com
|
||||||
@license: GNU Lesser General Public License (LGPL)
|
@license: GNU Lesser General Public License (LGPL)
|
||||||
|
@ -60,9 +60,9 @@ if sys.version_info < (2, 2):
|
||||||
|
|
||||||
|
|
||||||
__author__ = "Robey Pointer <robeypointer@gmail.com>"
|
__author__ = "Robey Pointer <robeypointer@gmail.com>"
|
||||||
__date__ = "1 Nov 2009"
|
__date__ = "21 May 2011"
|
||||||
__version__ = "1.7.6 (Fanny)"
|
__version__ = "1.7.7 (George)"
|
||||||
__version_info__ = (1, 7, 6)
|
__version_info__ = (1, 7, 7)
|
||||||
__license__ = "GNU Lesser General Public License (LGPL)"
|
__license__ = "GNU Lesser General Public License (LGPL)"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -194,7 +194,7 @@ class Transport (threading.Thread):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_PROTO_ID = '2.0'
|
_PROTO_ID = '2.0'
|
||||||
_CLIENT_ID = 'paramiko_1.7.6'
|
_CLIENT_ID = 'paramiko_1.7.7'
|
||||||
|
|
||||||
_preferred_ciphers = ( 'aes128-ctr', 'aes256-ctr', 'aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc',
|
_preferred_ciphers = ( 'aes128-ctr', 'aes256-ctr', 'aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc',
|
||||||
'arcfour128', 'arcfour256' )
|
'arcfour128', 'arcfour256' )
|
||||||
|
|
Loading…
Reference in New Issue