October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Install Kippo SSH Honeypot on an Ubuntu VPS (Legacy Deployment Guide)

Deploy Kippo as a disposable legacy honeypot: verify its Python 2-era dependencies, preserve administrative SSH access, configure a non-root service, and monitor captured sessions and downloads.
Length9 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Kippo can still be deployed on an Ubuntu VPS, but it is legacy software: its upstream dependencies target Python 2, old Twisted releases, PyCrypto, and Zope Interface, and current Ubuntu images may not provide them. Use a separate disposable server, preserve a tested administrative SSH path, run Kippo as an unprivileged account, and verify every dependency before exposing the listener to the Internet.

What Kippo does—and why the deployment is unusual

Kippo is a medium-interaction SSH honeypot. It presents an attacker with a fake Debian-like filesystem, records brute-force attempts and the shell commands entered after login, can replay sessions through UML-compatible tty recordings, and captures files downloaded with wget. Its configuration also supports fake file contents and SSH command trickery.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The project is no longer maintained. Community documentation describes Cowrie as its successor, but there is no current, authoritative compatibility matrix covering every Ubuntu release. Treat Kippo as a controlled legacy experiment rather than a normal production service. A failed dependency build, an unexpected Python interpreter, or an unsafe port change can leave you without administration or expose the VPS in ways you did not intend.

Plan the VPS and the safety boundary first

Use a disposable host

  • Provision a separate Ubuntu VPS that contains no production applications, credentials, customer data, private keys, API tokens, or cloud-init secrets.
  • Use a provider firewall to allow only the administrative port and the honeypot port you intentionally expose. Keep an out-of-band console enabled so you can recover from an SSH or firewall mistake.
  • Assume that every file an attacker uploads is hostile. Do not execute downloads on the honeypot or copy them to a workstation that contains sensitive data; move samples to an isolated analysis environment.
  • Create a dedicated service account for Kippo. The process should not run as root and should not have access to other users’ home directories.

Choose how SSH traffic will be separated

Kippo’s upstream default listener is port 2222. Binding directly to port 22 normally requires root privileges, which conflicts with the least-privilege design. The safest first deployment is therefore to leave the real SSH daemon on a separate high port and expose Kippo on 2222. If you need to attract scans aimed at port 22, use a carefully tested forwarding rule or a privileged-port helper such as authbind; do not improvise this while your only SSH session is open.

#1 Best Overall
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
  • Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Preserve administrative SSH access before touching Kippo

Perform port changes from the provider console or with a second, already-tested session available. Open the new administrative port in the provider firewall before changing sshd.

  1. Edit the SSH daemon configuration and add a second high port while the existing port remains available.
  2. Validate the file before reloading it:
sudo sshd -t
sudo systemctl reload ssh
  1. From another machine, open a new session to the high port and confirm that authentication, privilege escalation, and your normal administration tools work.
  2. Only after that test succeeds, remove the old public SSH port from the daemon configuration, validate again with sudo sshd -t, and reload SSH.
  3. Keep the high administrative port permitted in the provider firewall. Reserve port 22 for Kippo only if you have a tested binding or forwarding design and a console recovery path.

Never close the original session until the replacement session is working. If a reload fails, the existing daemon may continue running, but you should use the console to inspect the error rather than repeatedly guessing at configuration changes.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check whether the legacy runtime exists on your Ubuntu image

The upstream README lists Python 2.5 or newer, Twisted from 8.0 through 15.1.0, PyCrypto, and Zope Interface. The optional kippo-extra package narrows that practical requirement to Python 2.7 or later and explicitly does not support Python 3.x.

Component Requirement documented by the project Important qualification
Python 2.5 or newer kippo-extra requires Python 2.7 or later and does not support Python 3.x.
Twisted 8.0–15.1.0 This is an old, bounded range rather than a recommendation to install the newest Twisted release.
PyCrypto Required The cited documentation does not specify a current package version.
Zope Interface Required The Ubuntu package name can vary by release.

Ubuntu package names and repositories differ substantially between releases. Start with the image’s supported repositories and verify that the required interpreter and libraries can actually be installed together. Do not paste an installation command written for an obsolete Ubuntu release into a current image. If the distribution no longer ships a compatible Python 2/Twisted combination, stop and choose a preserved, isolated environment or a maintained successor rather than weakening the host to force an old dependency chain.

Some Ubuntu images also need OpenSSL and PyASN1 packages for their available Python/Twisted build. Install only packages from repositories you trust, record the exact versions that resolved successfully, and test the interpreter used by Kippo before proceeding.

Rank #2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
  • Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM)
  • Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
  • CanaKit Turbine Black Case for the Raspberry Pi 5
  • CanaKit Low Noise Bearing System Fan
  • Mega Heat Sink - Black Anodized

Create the Kippo account and obtain the source

Create a service account without an interactive password and give it ownership of a dedicated installation directory:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo adduser --disabled-password --gecos "" kippo
sudo install -d -o kippo -g kippo /opt/kippo

Obtain the Kippo source from the upstream project or a trusted archive, and place it under that directory. Because the project is unmaintained, pin the source revision you selected and keep a copy of the dependency information used to build it. Avoid running the source checkout as root; use the kippo account for configuration and startup.

sudo -u kippo -H bash
cd /opt/kippo
cp kippo.cfg.dist kippo.cfg

Do not start the daemon until the configuration file has been reviewed. The upstream instructions specifically require editing kippo.cfg before startup.

Configure the listener, fake host, and capture locations

Listener and administration settings

Set the listener port in kippo.cfg. Keeping the default 2222 is the least complicated option because it avoids privileged binding. If you choose another port, open only that port in the provider firewall and confirm that no real service is already listening there.

Set the fake hostname and the credentials that will appear to attackers. Never reuse a real password, SSH key, token, or username/password combination from another system. A honeypot credential should be disposable and should not unlock anything outside the fake environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
  • CanaKit Raspberry Pi 5 Essentials Starter Kit

Filesystem and logging options

Review the configuration entries for the fake filesystem, fake file contents, log destinations, and download capture. Keep those directories on the dedicated Kippo installation and ensure the kippo account can write to them. If you change a path, create it first and check ownership before launching the daemon.

Keep enough disk space for tty recordings and downloaded samples. Configure external log collection only after local logging works; a remote collector must not become a new credential or network dependency inside the trap.

Start Kippo and verify it from another machine

Background operation

Once dependencies and configuration are ready, start Kippo as the dedicated account:

cd /opt/kippo
./start.sh

The script starts Kippo in the background. Confirm that the process remains alive and that the expected listener is bound before treating the deployment as operational.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Foreground troubleshooting

For first launch or dependency debugging, run the Twisted application in the foreground:

Rank #4
SANOOV Raspberry Pi 5 4GB Kit, 4GB RAM Single Board Computer with Active Cooler and ABS Case, Complete Raspberry Pi 5 Starter Kit for IoT Robotics Retro Gaming
  • All-in-One Complete Kit: This SANOOV RPi 5 bundle comes with Raspberry Pi 5 4GB RAM single board, active cooler, durable ABS case and screwdriver. No extra parts needed, ready to use right out of the box for beginners and hobbyists
  • Powerful Single Board Computer: Equipped with 4GB RAM and high-performance processor, delivers fast running speed for 4K playback, AI projects, programming and daily computing tasks. SANOOV for raspberry pi 5 4GB is equipped with broadcom 64 quad-core Arm Cortex A76 processor with gigabit ethernet and upgraded with IEEE 802.11ac Wi-Fi, Bluetooth 5.0 dual-band 2.4Ghz and 5Ghz and Power Over Ethernet (POE). Upgrading delivers 2-3 x speed vs Pi 4, redefining the experience
  • Efficient Active Cooler: Effectively lowers operating temperature and prevents performance throttling. Runs quietly even under long-time heavy load, ensures stable operation all day long. SANOOV RPi 5 4GB kit offer an active cooler, which combines an aluminium heatsink with a high-performance PWM fan. Active cooler is fully compatible with the Pi OS, which can effectively reduce the temperature of RPi5 and ensure its good performance during long-term high load operation
  • Sturdy ABS Protective Case: Well-fitted for Raspberry Pi 5 board, can be secured with 4 screws to effectively protect the Pi 5 motherboard from damage, reserves full access to all ports and buttons. SANOOV uses ABS material to produce the case, which has a softer texture and feel. Meanwhile, SANOOV case adopts a layered design for easy disassembly and installation. (Tip: The Case cannot install M.2 HAT Add on Board and Solid State Drive!)
  • Wide Application & Full Compatibility: Seamlessly compatible with official OS and mainstream peripheral accessories for Raspberry Pi 5. Whether you are a beginner, student, electronics hobbyist or professional developer, this all-in-one kit meets your diverse needs. It excels in IoT projects, robotics design, retro gaming devices, home media servers and other DIY creations. Backed by a large global community, you can easily find guides, technical support and shared projects online
cd /opt/kippo
twistd -y kippo.tac -n

The foreground mode keeps errors visible in the terminal. Resolve import failures, permission errors, and port conflicts there before returning to background operation.

Test externally

From a separate machine—not from the VPS itself—connect to the honeypot port and confirm that the fake SSH service responds. A local process check alone cannot prove that provider firewall rules, routing, and the public listener are correct. Keep the test credentials disposable and record the exact time of the test so you can distinguish your own session from unsolicited activity.

Find sessions, debug output, and downloaded files

Artifact Path What it contains
Debug and runtime log log/kippo.log Operational messages and connection-related events.
TTY recordings log/tty/ Replayable records of attacker shell interaction.
Captured downloads dl/ Files fetched through the honeypot’s wget handling.

Watch the main log while testing:

tail -f /opt/kippo/log/kippo.log

Preserve the original files when exporting evidence. Hash samples, keep timestamps, and analyze copies offline. Do not add execution permissions or run a captured binary merely to identify it.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Expose port 22 only after the safer layout works

Option 1: publish Kippo on 2222

This keeps the real SSH daemon on a high administrative port and lets Kippo run without root-level port access. It is the recommended first milestone because a mistake affects the honeypot listener rather than your management channel.

Option 2: forward port 22 to an unprivileged Kippo port

A host-level forwarding rule can accept connections on 22 and pass them to Kippo on 2222. The rule must be tested from the console and from an external client, and it must not redirect your high administrative port. Provider firewall rules, host firewall rules, and persistence across reboot all need separate verification.

Best Value
RasTech Raspberry Pi 5 8GB Kit with Active Cooler and Pi5 Case
  • 【What you Get】You will get 1*Pi 5 8GB Single Board,1*RasTech Case,1*Active Cooler,1*Screwdriver,1*Installation instructions,12-month free warranty, lifetime service, 24-hour prompt and friendly response.
  • 【More Connectors】There are two USB 3.0 ports(5Gbps simultaneously) and two USB 2.0 ports, which triple total bandwidth ,support any combination of up to two cameras or displays. Peak SD card performance is doubled through support for the SDR104 high-speed mode. It provides a smooth desktop experience for you. Offer Gigabit Ethernet and a PCIe interface, along with dual-band Wi-Fi and Bluetooth 5.0/BLE wireless capability. The RasTech Pi 5 Kit use the new 27W 5.1V 5A USB-C power connector.
  • 【 Support Dual 4Kp60 Display 】Each of the two microHDMI sockets can control a 4K display at 60 Hertz, now support HDR, offering super HD video for media streaming projects. RPi 5 is the first RPi model that comes with a PCI Express port (PCIe 2.0 x1 with 500 MB/s) to attach SSDs (requires separate M.2 HAT).
  • 【 Excellent Chips And Applications】Pi 5 is a full-size Pi computer using silicon built in-house at Pi. The RP1 “southbridge” provides the bulk of the I/O capabilities for Pi 5. Pi 5 is more friendly and convenient in the development of Internet of Things, Web development, machine identification, automatic control and other electronic equipment applications and network.
  • 【 Faster CPU, Better GPU 】 Pi 5 features a Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, it delivers a 2–3× increase in CPU performance relative to RaspberryPi 4. The 800MHz VideoCore VII GPU is compatible to OpenGL ES 3.1 and Vulkan 1.2, substantial uplift in graphics performance. Pi 5 Offers lightning-fast CPU speed, a PCI Express interface, a Real Time Clock (RTC) and a power button and runs significantly cooler than Pi 4.

Option 3: use authbind or another privileged-port helper

The historical Ubuntu guidance documents authbind as a way for a dedicated account to bind a privileged port. If you use it, grant access only to the Kippo executable and verify the effective permissions after every source update. A helper that accidentally permits arbitrary programs to bind low ports defeats the isolation goal.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Common failure modes and recovery steps

Kippo exits with an import or interpreter error

Check which Python executable launches kippo.tac, then compare its version and installed modules with the documented Python 2/Twisted requirements. Python 3 is not supported by kippo-extra. Installing a modern Twisted release on top of an old Kippo checkout is not a reliable fix; use a compatible, isolated environment or abandon the legacy deployment.

The port is already in use

Identify the process occupying the selected port and verify that the real SSH daemon is not still bound there. Keep administration on the tested high port, stop only the conflicting service you recognize, and restart Kippo as the kippo account. Never kill an unknown process on a remote host without console access.

The daemon starts but files are missing

Check ownership of the installation, log, log/tty, and dl directories. Confirm that the paths in kippo.cfg match the directories you created and that the filesystem is not full. A successful network connection with no records usually indicates a path or permission problem rather than an SSH-client problem.

External clients cannot connect

Test in order: Kippo’s local listener, the VPS host firewall, the provider firewall, and the public address or forwarding rule. A local listener check proves only that the process started; it does not prove that the selected port is reachable from the Internet.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You lose SSH after changing ports

Use the provider’s out-of-band console, restore the last known-good SSH configuration, run sshd -t, and reload the daemon. Keep a second administrative session open during future changes and do not remove the old port until the replacement has been tested.

Operate the honeypot without turning it into a liability

  • Patch the Ubuntu host where possible, but test changes against the legacy runtime before applying them to the exposed instance.
  • Restrict outbound traffic so a compromised process cannot reach production networks or cloud metadata services.
  • Rotate and archive logs before disk exhaustion; preserve evidence separately from the live service.
  • Review downloaded files offline and treat filenames, scripts, and shell commands as untrusted input.
  • Document the exact source revision, interpreter, dependency versions, listener port, firewall rules, and configuration backup.
  • Destroy and rebuild the VPS if you can no longer explain its state. A disposable honeypot is safer than an indefinitely modified server.

Should you use Kippo or a successor?

Kippo remains useful when your objective is specifically to reproduce its fake Debian-like shell, legacy session format, and download-capture behavior. Its cost is maintenance risk: the documented runtime is Python 2-era software, the project is no longer maintained, and current Ubuntu images may not carry a compatible dependency set.

A successor such as Cowrie is the more sensible starting point for a new Internet-facing deployment when you need actively maintained code and current-OS installation guidance. The available documentation establishes Kippo’s legacy status and Cowrie’s successor relationship, but it does not establish a complete, apples-to-apples matrix for runtime support, protocol emulation, export integrations, or resource use. Make that comparison against the specific release and isolation model you intend to operate.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
CanaKit Raspberry Pi 5 Starter Kit PRO - Turbine Black (128GB Edition) (8GB RAM)
Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$259.95
Bestseller No. 2
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
CanaKit Raspberry Pi 5 16GB Starter Kit PRO - Turbine Black (128GB Edition) (16GB RAM)
Includes Raspberry Pi 5 16GB with 2.4Ghz 64-bit quad-core CPU (16GB RAM); CanaKit Turbine Black Case for the Raspberry Pi 5
$419.99
Bestseller No. 3
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit (4GB RAM)
CanaKit Raspberry Pi 5 Essentials Starter Kit
$189.99

Final pre-exposure checklist

  • The VPS is separate from production and has console recovery.
  • The real SSH daemon works on a tested high port.
  • The provider firewall exposes only intended ports.
  • Kippo runs under the dedicated kippo account.
  • The selected Python, Twisted, PyCrypto, and Zope Interface combination is available and tested.
  • kippo.cfg uses fake, disposable credentials and reviewed paths.
  • log/kippo.log, log/tty/, and dl/ are writable and monitored.
  • An external connection test succeeds before public exposure.
  • Outbound access and downloaded-file handling are restricted.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.