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.
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
ecdsamodule, 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 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.
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
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” (
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
_slowmath.py appears in the
from Crypto.PublicKey import RSA print(RSA._impl._math)
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.
Some Windows users whose Python is 64-bit have found that the PyCrypto
winrandom may not install properly, leading to ImportErrors.
In this scenario, you’ll probably need to compile
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
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:
0.1.7 or better.