Note
Installing Paramiko 2.0 or above? See Installing instead.
This document includes legacy notes on installing Paramiko 1.x (specifically, 1.13 and up). Users are strongly encouraged to upgrade to 2.0 when possible; PyCrypto (the dependency covered below) is no longer maintained and contains security vulnerabilities.
General install notes
- Python 2.6+ and 3.3+ are supported; Python <=2.5 and 3.0-3.2 are not supported.
See the note in the main install doc about Release lines for details on specific versions you may want to install.
Note
1.x will eventually be entirely end-of-lifed.
- Paramiko 1.7-1.14 have only one dependency: PyCrypto.
- Paramiko 1.15+ (not including 2.x and above) add a second, pure-Python
dependency: the
ecdsa
module, trivially installable via PyPI. - Paramiko 1.15+ (again, not including 2.x and up) also allows you to optionally install a few more dependencies to gain support for GSS-API/Kerberos.
- Users on Windows may want to opt for the ActivePython and PyPM approach.
PyCrypto
PyCrypto provides the low-level (C-based) encryption algorithms we need to implement the SSH protocol. There are a couple gotchas associated with installing PyCrypto: its compatibility with Python's package tools, and the fact that it is a C-based extension.
C extension
Unless you are installing from a precompiled source such as a Debian apt
repository or RedHat RPM, or using pypm, you will also need the
ability to build Python C-based modules from source in order to install
PyCrypto. Users on Unix-based platforms such as Ubuntu or Mac OS X will
need the traditional C build toolchain installed (e.g. Developer Tools / XCode
Tools on the Mac, or the build-essential
package on Ubuntu or Debian Linux
-- basically, anything with gcc
, make
and so forth) as well as the
Python development libraries, often named python-dev
or similar.
Slow vs fast crypto math
PyCrypto attempts to use the gmp
C math library if it is present on your
system, which enables what it internally calls "fastmath" (_fastmath.so
).
When those headers are not available, it falls back to "slowmath"
(_slowmath.py
) which is a pure-Python implementation.
Real-world tests have shown significant benefits to using the C version of this
code; thus we strongly recommend you install the gmp
development headers
before installing Paramiko/PyCrypto. E.g.:
$ apt-get install libgmp-dev # or just apt
$ yum install gmp-devel # or dnf
$ brew install gmp
If you're unsure which version of math you've ended up with, a quick way to
check is to examine whether _fastmath.so
or _slowmath.py
appears in the
output of:
from Crypto.PublicKey import RSA
print(RSA._impl._math)
Windows
For Windows users we recommend using ActivePython and PyPM, installing a C development environment such as Cygwin or obtaining a precompiled Win32 PyCrypto package from voidspace's Python modules page.
Note
Some Windows users whose Python is 64-bit have found that the PyCrypto
dependency winrandom
may not install properly, leading to ImportErrors.
In this scenario, you'll probably need to compile winrandom
yourself
via e.g. MS Visual Studio. See Fabric #194 for info.
ActivePython and PyPM
Windows users who already have ActiveState's ActivePython distribution installed
may find Paramiko is best installed with its package manager, PyPM. Below is example output from an
installation of Paramiko via pypm
:
C:\> pypm install paramiko
The following packages will be installed into "%APPDATA%\Python" (2.7):
paramiko-1.7.8 pycrypto-2.4
Get: [pypm-free.activestate.com] paramiko 1.7.8
Get: [pypm-free.activestate.com] pycrypto 2.4
Installing paramiko-1.7.8
Installing pycrypto-2.4
C:\>
Optional dependencies for GSS-API / SSPI / Kerberos
First, see the main install doc's notes: Optional dependencies for GSS-API / SSPI / Kerberos - everything there is required for Paramiko 1.x as well.
Additionally, users of Paramiko 1.x, on all platforms, need a final dependency:
pyasn1 0.1.7
or better.