Installing (1.x)

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.