kangaroo

Kangaroo SSH JumpServer 🦘

A lightweight, open-source SSH Jumpserver for internal management.

TL;DR

Restricts shells on both the Master and the Slave nodes to ensure non-root users can only perform "jump" actions from Master to Slaves.

How it works:

  1. Install on Master: Run the installation script to restrict all non-root users to the server/client.sh menu interface.
  2. Add Users: Create standard Linux system users on the Master node.
  3. Link Slaves: Use kangaroo add-server to register remote servers. This automatically creates a new account on the Slave and configures it to forward syslog to the master.

that’s it! Users now simply SSH into the Master, where they are greeted by the fzf menu where they can view authorized servers and “jump” to them instantly.


Install

Tested on Ubuntu 24.04

cd /home && \
  git clone https://github.com/stefanpejcic/kangaroo/ && \
  cd kangaroo && bash install.sh

Optional: create a server/ips file before running the installation script. Add the allowed IP addresses to this file, one per line. During installation, the script will restrict SSH access to these IPs and also apply corresponding iptables rules to limit network access accordingly.


Usage

# kangaroo 
Usage: kangaroo [OPTIONS] COMMAND [ARGS]...

  Kangaroo SSH JumpServer 🦘

Options:
  --help  Show this message and exit.

Commands:
  add-server         Add a new server and assign it to users.
  delete-server      Delete SERVER from USERNAME's SSH config file.
  delete-server-all  Delete SERVER from all users' SSH config files.
  login-logs         Show ssh login logs.
  server             Show SSH config for SERVER from all users.
  servers            List all hosts and number of users who have access.
  user               Show SSH servers and configs for a specific USERNAME.
  users              List all SSH Users.

Manage Users

Manage Servers

Logs

View SSH login logs:

Screen Recordings


  1. Generate ASCII Art, for example from: https://patorjk.com/software/taag/#p=display&f=Star+Wars&t=Kangaroo&x=none&v=4&h=4&w=80&we=false
  2. Save it in file named logo in server directory

Restrict IP access

To enhance security, limit access to both the SSH service and the client.sh script so that only authorized IP addresses can connect.