SSH tarpit that slowly sends an endless banner

Overview

Endlessh: an SSH tarpit

Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server.

Since the tarpit is in the banner before any cryptographic exchange occurs, this program doesn't depend on any cryptographic libraries. It's a simple, single-threaded, standalone C program. It uses poll() to trap multiple clients at a time.

Usage

Usage information is printed with -h.

Usage: endlessh [-vhs] [-d MS] [-f CONFIG] [-l LEN] [-m LIMIT] [-p PORT]
  -4        Bind to IPv4 only
  -6        Bind to IPv6 only
  -d INT    Message millisecond delay [10000]
  -f        Set and load config file [/etc/endlessh/config]
  -h        Print this help message and exit
  -l INT    Maximum banner line length (3-255) [32]
  -m INT    Maximum number of clients [4096]
  -p INT    Listening port [2222]
  -s        Print diagnostics to syslog instead of standard output
  -v        Print diagnostics (repeatable)

Argument order matters. The configuration file is loaded when the -f argument is processed, so only the options that follow will override the configuration file.

By default no log messages are produced. The first -v enables basic logging and a second -v enables debugging logging (noisy). All log messages are sent to standard output by default. -s causes them to be sent to syslog.

endlessh -v >endlessh.log 2>endlessh.err

A SIGTERM signal will gracefully shut down the daemon, allowing it to write a complete, consistent log.

A SIGHUP signal requests a reload of the configuration file (-f).

A SIGUSR1 signal will print connections stats to the log.

Sample Configuration File

The configuration file has similar syntax to OpenSSH.

# The port on which to listen for new SSH connections.
Port 2222

# The endless banner is sent one line at a time. This is the delay
# in milliseconds between individual lines.
Delay 10000

# The length of each line is randomized. This controls the maximum
# length of each line. Shorter lines may keep clients on for longer if
# they give up after a certain number of bytes.
MaxLineLength 32

# Maximum number of connections to accept at a time. Connections beyond
# this are not immediately rejected, but will wait in the queue.
MaxClients 4096

# Set the detail level for the log.
#   0 = Quiet
#   1 = Standard, useful log messages
#   2 = Very noisy debugging information
LogLevel 0

# Set the family of the listening socket
#   0 = Use IPv4 Mapped IPv6 (Both v4 and v6, default)
#   4 = Use IPv4 only
#   6 = Use IPv6 only
BindFamily 0

Build issues

Some more esoteric systems require extra configuration when building.

RHEL 6 / CentOS 6

This system uses a version of glibc older than 2.17 (December 2012), and clock_gettime(2) is still in librt. For these systems you will need to link against librt:

make LDLIBS=-lrt

Solaris / illumos

These systems don't include all the necessary functionality in libc and the linker requires some extra libraries:

make CC=gcc LDLIBS='-lnsl -lrt -lsocket'

If you're not using GCC or Clang, also override CFLAGS and LDFLAGS to remove GCC-specific options. For example, on Solaris:

make CFLAGS=-fast LDFLAGS= LDLIBS='-lnsl -lrt -lsocket'

The feature test macros on these systems isn't reliable, so you may also need to use -D__EXTENSIONS__ in CFLAGS.

OpenBSD

The man page needs to go into a different path for OpenBSD's man command:

diff --git a/Makefile b/Makefile
index 119347a..dedf69d 100644
--- a/Makefile
+++ b/Makefile
@@ -14,8 +14,8 @@ endlessh: endlessh.c
 install: endlessh
        install -d $(DESTDIR)$(PREFIX)/bin
        install -m 755 endlessh $(DESTDIR)$(PREFIX)/bin/
-       install -d $(DESTDIR)$(PREFIX)/share/man/man1
-       install -m 644 endlessh.1 $(DESTDIR)$(PREFIX)/share/man/man1/
+       install -d $(DESTDIR)$(PREFIX)/man/man1
+       install -m 644 endlessh.1 $(DESTDIR)$(PREFIX)/man/man1/

 clean:
        rm -rf endlessh
Issues
  • Build fails on Solaris

    Build fails on Solaris

    cc -ggdb3 -std=c99 -Wall -Wextra -Wno-missing-field-initializers -Os -o endlessh endlessh.c 
    cc: Warning: Option -db3 passed to ld, if ld is invoked, ignored otherwise
    cc: Warning: Option -Os passed to ld, if ld is invoked, ignored otherwise
    "/usr/include/sys/feature_tests.h", line 337: #error: "Compiler or options invalid for pre-UNIX 03 X/Open applications  and pre-2001 POSIX applications"
    cc: acomp failed for endlessh.c
    make: *** [Makefile:8: endlessh] Error 2
    
    cc on Solaris is Oracle Developer Studio.
    
    When change to gcc, got different errors:
    
    # make
    gcc -ggdb3 -std=c99 -Wall -Wextra -Wno-missing-field-initializers -Os -o endlessh endlessh.c 
    In file included from /usr/include/time.h:18:0,
                     from endlessh.c:20:
    /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed/sys/feature_tests.h:346:2: error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications       and pre-2001 POSIX applications"
     #error "Compiler or options invalid for pre-UNIX 03 X/Open applications \
      ^
    In file included from /usr/include/sys/vnode.h:44:0,
                     from /usr/include/sys/stream.h:21,
                     from /usr/include/netinet/in.h:65,
                     from /usr/include/sys/socket.h:44,
                     from endlessh.c:32:
    /usr/include/sys/resource.h:146:17: error: field 'ru_utime' has incomplete type
      struct timeval ru_utime; /* user time used */
                     ^
    /usr/include/sys/resource.h:147:17: error: field 'ru_stime' has incomplete type
      struct timeval ru_stime; /* system time used */
                     ^
    endlessh.c:152:8: error: redefinition of 'struct queue'
     struct queue {
            ^
    In file included from /usr/include/netinet/in.h:65:0,
                     from /usr/include/sys/socket.h:44,
                     from endlessh.c:32:
    /usr/include/sys/stream.h:66:16: note: originally defined here
     typedef struct queue {
                    ^
    endlessh.c: In function 'config_load':
    endlessh.c:419:16: warning: implicit declaration of function 'getline' [-Wimplicit-function-declaration]
             while (getline(&line, &len, f) != -1) {
                    ^
    endlessh.c: In function 'main':
    endlessh.c:566:22: warning: implicit declaration of function 'getopt' [-Wimplicit-function-declaration]
         while ((option = getopt(argc, argv, "d:f:hl:m:p:vV")) != -1) {
                          ^
    endlessh.c:569:43: error: 'optarg' undeclared (first use in this function)
                     config_set_delay(&config, optarg, 1);
                                               ^
    endlessh.c:569:43: note: each undeclared identifier is reported only once for each function it appears in
    endlessh.c:602:14: error: 'optind' undeclared (first use in this function)
         if (argv[optind]) {
                  ^
    make: *** [Makefile:8: endlessh] Error 1
    
    opened by yvoinov 14
  • Support for systemd sockets

    Support for systemd sockets

    A very typical scenario would be running this on port 22, which requires elevated privilege on most Linux systems. Even considering the almost non-existent attack surface, running as root just for that seems awkward. Systemd provides a convenient mechanism of adding the capability of using privileged ports (<1024) to unprivileged services, called systemd sockets. A basic TCP socket would look like

    [Unit]
    Description=Endlessh socket
    
    [Socket]
    ListenStream=22
    

    To take advantage of that, however, a program must be able to accept the input from that socket. There are two ways to do this, both mentioned in the linked article on sockets (either via systemd's native socket passing interface (see sd_listen_fds(3) for details) or via the traditional inetd(8)-style socket passing (i.e. sockets passed in via standard input and output, using StandardInput=socket in the service file)) I wonder if it is possible to add support for that to Endlessh.

    opened by ashpool37 9
  • Binding to both IPv4 and IPv6 address

    Binding to both IPv4 and IPv6 address

    Nice idea - thanks for endlessh!

    I just installed it in a FreeBSD jail. Unfortunately, it listens only on the IPv6 address. Is there a way of letting it listen also on the IPv4 address of the jail?

    opened by utrenkner 9
  • CentOS 8, not possible to autostart enablessh

    CentOS 8, not possible to autostart enablessh

    Hey guys, trying to install enablessh on my CentOS 8 server but I can't get it to the point where it autostarts it successfully. On centos 7 everything works as expected.

    Here is the log:

    -- Logs begin at Tue 2021-02-23 16:46:05 CET, end at Tue 2021-02-23 16:48:15 CET. --
    Feb 23 16:46:13 cloud-03 systemd[1]: Started Endlessh SSH Tarpit.
    Feb 23 16:46:13 cloud-03 systemd[1]: endlessh.service: Main process exited, code=exited, status=203/EXEC
    Feb 23 16:46:13 cloud-03 systemd[1]: endlessh.service: Failed with result 'exit-code'.
    Feb 23 16:46:44 cloud-03 systemd[1]: endlessh.service: Service RestartSec=30s expired, scheduling restart.
    Feb 23 16:46:44 cloud-03 systemd[1]: endlessh.service: Scheduled restart job, restart counter is at 1.
    Feb 23 16:46:44 cloud-03 systemd[1]: Stopped Endlessh SSH Tarpit.
    Feb 23 16:46:44 cloud-03 systemd[1]: Started Endlessh SSH Tarpit.
    Feb 23 16:46:44 cloud-03 systemd[1]: endlessh.service: Main process exited, code=exited, status=203/EXEC
    Feb 23 16:46:44 cloud-03 systemd[1]: endlessh.service: Failed with result 'exit-code'.
    Feb 23 16:47:14 cloud-03 systemd[1]: endlessh.service: Service RestartSec=30s expired, scheduling restart.
    Feb 23 16:47:14 cloud-03 systemd[1]: endlessh.service: Scheduled restart job, restart counter is at 2.
    Feb 23 16:47:14 cloud-03 systemd[1]: Stopped Endlessh SSH Tarpit.
    Feb 23 16:47:14 cloud-03 systemd[1]: Started Endlessh SSH Tarpit.
    Feb 23 16:47:14 cloud-03 systemd[1]: endlessh.service: Main process exited, code=exited, status=203/EXEC
    Feb 23 16:47:14 cloud-03 systemd[1]: endlessh.service: Failed with result 'exit-code'.
    Feb 23 16:47:45 cloud-03 systemd[1]: endlessh.service: Service RestartSec=30s expired, scheduling restart.
    Feb 23 16:47:45 cloud-03 systemd[1]: endlessh.service: Scheduled restart job, restart counter is at 3.
    Feb 23 16:47:45 cloud-03 systemd[1]: Stopped Endlessh SSH Tarpit.
    Feb 23 16:47:45 cloud-03 systemd[1]: Started Endlessh SSH Tarpit.
    Feb 23 16:47:45 cloud-03 systemd[1]: endlessh.service: Main process exited, code=exited, status=203/EXEC
    Feb 23 16:47:45 cloud-03 systemd[1]: endlessh.service: Failed with result 'exit-code'.
    Feb 23 16:48:15 cloud-03 systemd[1]: endlessh.service: Service RestartSec=30s expired, scheduling restart.
    Feb 23 16:48:15 cloud-03 systemd[1]: endlessh.service: Scheduled restart job, restart counter is at 4.
    Feb 23 16:48:15 cloud-03 systemd[1]: Stopped Endlessh SSH Tarpit.
    Feb 23 16:48:15 cloud-03 systemd[1]: endlessh.service: Start request repeated too quickly.
    Feb 23 16:48:15 cloud-03 systemd[1]: endlessh.service: Failed with result 'exit-code'.
    Feb 23 16:48:15 cloud-03 systemd[1]: Failed to start Endlessh SSH Tarpit.
    

    this is my service file:

    [[email protected] ~]# cat /etc/systemd/system/endlessh.service
    [Unit]
    Description=Endlessh SSH Tarpit
    Documentation=man:endlessh(1)
    Requires=network-online.target
    
    [Service]
    Type=simple
    Restart=always
    RestartSec=30sec
    ExecStart=/usr/local/bin/endlessh
    KillSignal=SIGTERM
    
    # Stop trying to restart the service if it restarts too many times in a row
    StartLimitInterval=5min
    StartLimitBurst=4
    
    StandardOutput=journal
    StandardError=journal
    StandardInput=null
    
    PrivateTmp=true
    PrivateDevices=true
    ProtectSystem=full
    ProtectHome=true
    InaccessiblePaths=/run /var
    
    ## If you want Endlessh to bind on ports < 1024
    ## 1) run:
    ##     setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
    ## 2) uncomment following line
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    ## 3) comment following line
    #PrivateUsers=true
    
    NoNewPrivileges=true
    ConfigurationDirectory=endlessh
    ProtectKernelTunables=true
    ProtectKernelModules=true
    ProtectControlGroups=true
    MemoryDenyWriteExecute=true
    
    [Install]
    WantedBy=multi-user.target
    

    And this is my config file:

    [[email protected] ~]# cat /etc/endlessh/config
    Port 22
    
    opened by nicedevil007 3
  • Systemd won't start

    Systemd won't start

    I am trying to get this to run in a raspbian system. If I start the application on it's own it works fine, but by trying to make it run throught systemctl I get this:

    ExecStart=/usr/local/bin/endlessh (code=exited, status=226/NAMESPACE)

    I followed the endlessh.service instructions to run it in a port under 1028, which initially I failed to follow, but I still get the same result.

    opened by nunocruz 3
  • Connection established, but no banner is received

    Connection established, but no banner is received

    Hi,

    Thanks for the awesome program. I'm running

    endlessh -4 -d 10000 -p 22 -v -l 32

    and as soon as I hit enter, port 22 starts accepting connections, but no banner is received on the client side. It just hangs. Is that a normal behavior?

    Regards,

    Thiago

    opened by apollotsantos 3
  • Would be nice if it dropped privs / chrooted if running as root

    Would be nice if it dropped privs / chrooted if running as root

    I'm about to run Endlessh on port 22, for which I need to run it as root to be able to bind to it. While it doesn't read anything from the clients, so exploiting it would be quite a challenge, I'm still uneasy running things as root, long-term, if I can avoid it.

    Would it be possible to drop privileges once bound to the port, if running as root? Perhaps even chroot into an empty dir too?

    I can prepare a pull request for both, if the idea is acceptable to you.

    opened by algernon 3
  • Add systemd service

    Add systemd service

    Ya know, if you want it :)

    It assumes you clone/install to /opt/endlessh. I cranked up some systemd permission restrictions because it never hurts. Seems to work fine on my ubuntu 16.06 server, though it takes a few log lines for entries to show up in the journal, it must be getting buffered.

    opened by vilhelmen 3
  • TCP v4 is not default

    TCP v4 is not default

    During install all I configured is :

      sudo nano /etc/endlessh/config
        Port 6000
    ```0
    
    then it only listens on tcp6:
    
    

    sudo netstat -ntulp | grep end Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 :::60000 :::* LISTEN 355519/endlessh

    
    How can I also enable tcp4 too? 
    And why isn't default?
    
    opened by mrx23dot 2
  • can't start endlessh service

    can't start endlessh service "Failed at step NAMESPACE"

    journalctl logs:

    May 02 21:48:28 [REACTED] systemd[1]: Started Endlessh SSH Tarpit.
    May 02 21:48:29 [REACTED] endlessh[16317]: endlessh.service: Failed at step NAMESPACE spawning /usr/local/bin/endlessh: No such file or directory
    May 02 21:48:29 [REACTED] systemd[1]: endlessh.service: Main process exited, code=exited, status=226/NAMESPACE
    May 02 21:48:29 [REACTED] systemd[1]: endlessh.service: Unit entered failed state.
    May 02 21:48:29 [REACTED] systemd[1]: endlessh.service: Failed with result 'exit-code'.
    

    right of the file: -rwxr-xr-x 1 root root 128800 May 2 20:21 /usr/local/bin/endlessh

    endlessh.service:

    [Unit]
    Description=Endlessh SSH Tarpit
    Documentation=man:endlessh(1)
    Requires=network-online.target
    
    [Service]
    Type=simple
    Restart=always
    RestartSec=30sec
    ExecStart=/usr/local/bin/endlessh
    KillSignal=SIGTERM
    
    # Stop trying to restart the service if it restarts too many times in a row
    StartLimitInterval=5min
    StartLimitBurst=4
    
    StandardOutput=journal
    StandardError=journal
    StandardInput=null
    
    PrivateTmp=true
    PrivateDevices=true
    ProtectSystem=full
    ProtectHome=true
    InaccessiblePaths=/run /var
    
    ## If you want Endlessh to bind on ports < 1024
    ## 1) run: 
    ##     setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
    ## 2) uncomment following line
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    ## 3) comment following line
    #PrivateUsers=true
    
    NoNewPrivileges=true
    ConfigurationDirectory=endlessh
    ProtectKernelTunables=true
    ProtectKernelModules=true
    ProtectControlGroups=true
    MemoryDenyWriteExecute=true
    
    [Install]
    WantedBy=multi-user.target
    

    With the command, it's work perfectly

    If you have some idea ?

    opened by KNG6 2
  • Error in manpage?

    Error in manpage?

    Lintian (the Debian package linter) reports a syntax issue in the manpage, but I'm incapable of narrowing it down to a specific issue (it's 2.30am here, I'm not dealing with troff...)

    opened by nbraud 2
  • need way to define IP to bind/listen to. Port= is not sufficent

    need way to define IP to bind/listen to. Port= is not sufficent

    Tried the endlessh v1.1 package, available with UBUNTU 20.04 LTS Server. Ran into several problems:

    man page mentions default config file, which is missing out of the box.

    no endlessh-doc package available so cant lookup further docs or readme's

    My Server has multiple interfaces and ip addresses. Therefor i configured the sshd to listen to very specific Interfaces/IPs and Ports . On "internal" interfaces/IPs it listens to standard port 22/tcp. On external interfaces/IPs it listens to a non-standard tcp port.

    That means i am unable to run/start entlessh on plain port 22, since it is "in use" on some interfaces/IP addresses, since there seems no option to configure it like the sshd

    Here is a partial example sshd conf:

    ListenAddress 0.0.0.0:65000 ListenAddress [::]:65000 ListenAddress [::1]:22 ListenAddress 127.0.0.1:22 ListenAddress [fd00:dead:beef:cafe::1]:22 ListenAddress 192.168.0.1:22

    Would be cool if endlessh could be configured just like sshd and that it would not bind just to all IPs with one single port.

    MANY THANKS for all the work and effort so far! best wishes Axel

    opened by Windows-Is-Cancer 0
  • Failed to set up mount namespacing fix on LXC containers

    Failed to set up mount namespacing fix on LXC containers

    When running inside an unpriviledged LXC container, the ProtectKernelTunables and ProtectControlGroups result in the process not being able to start with Failed to set up mount namespacing issue.

    opened by theLMGN 0
  • Increase max configurable line length from config

    Increase max configurable line length from config

    Because the SSH spec doesn't mention any max length of the banner size, it can be assumed that line lengths aren't checked, either. In this case, increasing the max line length (from config) may cause buffer overflows in systems attempting to gain access to servers running this tarpit. Causing buffer overflows in bot systems is a non-issue, and personally I'd encourage it.

    If it leads to system instability, fine by me and I'm sure many others will agree.

    opened by SimonCahill 0
Releases(1.0)
Owner
Christopher Wellons
Christopher Wellons
Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via morse code

Positive Affirmation Morse Code Ring ✨ Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via slowed-down mo

Stephanie 3 Dec 31, 2021
GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus

EagleTRT GPS System for Fenice GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus Compiling GPS Logger gps_

E-Agle Trento Racing Team 1 Nov 11, 2021
Steals plaguecheat.cc login information and sends them over Discord webhook

PlagueStealer DO NOT USE THIS!!! I TAKE NO RESPONSIBILITY FOR ANY DAMAGE CAUSED How to use: Make a Discord webhook (watch this if you dont know how: h

Sinner 3 Dec 28, 2021
WIP / DIN-rail compatible WiFi security camera with additional features (doorbell detection, magnetic / reed switch door & PIR sensor...) that sends you alerts on Telegram if someone unauthorised breaks into your house.

WIP / DIN-rail compatible WiFi security camera with additional features (doorbell detection, magnetic / reed switch door & PIR sensor...) that sends you alerts on Telegram if someone unauthorised breaks into your house.

François Leparoux 2 Dec 18, 2021
Bluetooth helper tools for setting up serial ports for e.g. SSH

SSH Helper program so that you can SSH over bluetooth. This can be a useful second way in in case you have a raspberry pi with broken network or firewall config.

Thomas Habets 4 Aug 3, 2022
A simple, cheap, and somewhat secure USB Key for SSH authentication, costs < $5

44Key A simple, cheap, and somewhat secure ed25519 USB Key for SSH authentication, costs < $5 Hardware: https://oshwhub.com/44670/miniusbkey PC Softwa

null 20 Jul 4, 2022
A fork of Endless Sky for playing in a browser: try it at https://play-endless-sky.com/

Endless Web A fork of Endless Sky to make the game playable in a browser. Play at https://play-endless-web.com File issues for anything to do with the

Thomas Ballinger 14 Jul 5, 2022
为了让 Windows 平台上的 ssh agent 能适配多种 ssh client 和在 wsl 环境下使用的工具

ssh-agent-bridge 为了让 Windows 平台上的 ssh agent 能适配多种 ssh client 和在 wsl 环境下使用的工具 Windows 平台上存在着多种 ssh agent 的实现,由于 Windows 平台的特殊性,这些 agent 程序都有一套自行实现的进程间通

Apache553 65 Jun 13, 2022
Block all ads in vídeo, áudio, banner, anti-skip

NoAdSpotify Block spotify ad This is an updated and simplified version of the project: BlockTheSpot Last updated: 6th June 2021 Last tested version: 1

null 13 Apr 7, 2022
A plugin editor for endless sky.

Editor This is a proof of concept plugin editor for Endless Sky. It uses Dear ImGui to render the UI on top of the game and as such it is technically

null 6 Mar 10, 2022
Application that sends custom requests to League of Legends LCU api

More screenshots For fun project made in the span of 2 nights back in February 2021, which I'm now updating Technologies used No external libraries, o

null 121 Aug 6, 2022
Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via morse code

Positive Affirmation Morse Code Ring ✨ Ring powered by an adafruit gemma + neopixel that sends a positive affirmation message to me via slowed-down mo

Stephanie 3 Dec 31, 2021
GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus

EagleTRT GPS System for Fenice GPS parser which read raw GPS messages, selects only the valid ones and sends them to CAN bus Compiling GPS Logger gps_

E-Agle Trento Racing Team 1 Nov 11, 2021
Steals plaguecheat.cc login information and sends them over Discord webhook

PlagueStealer DO NOT USE THIS!!! I TAKE NO RESPONSIBILITY FOR ANY DAMAGE CAUSED How to use: Make a Discord webhook (watch this if you dont know how: h

Sinner 3 Dec 28, 2021
WIP / DIN-rail compatible WiFi security camera with additional features (doorbell detection, magnetic / reed switch door & PIR sensor...) that sends you alerts on Telegram if someone unauthorised breaks into your house.

WIP / DIN-rail compatible WiFi security camera with additional features (doorbell detection, magnetic / reed switch door & PIR sensor...) that sends you alerts on Telegram if someone unauthorised breaks into your house.

François Leparoux 2 Dec 18, 2021
远程桌面、RADMIN、SSH、VNC集中管理器

远程连接管理器 远程桌面、RADMIN、SSH、VNC集中管理器 本软件用于集中管理远程桌面、ADMIN、SSH、VNC,双击主机即可直接调用对应客户端对服务器进行控制。 软件运行需要VC2010 X86运行库支持。

null 215 Aug 6, 2022
crypted admin shell: SSH-like strong crypto remote admin shell for Linux, BSD, Android, Solaris and OSX

crypted admin shell: SSH-like strong crypto remote admin shell for Linux, BSD, Android, Solaris and OSX

Sebastian 130 Jul 27, 2022
Run SSH on iOS 12 device.

Shelly12 Run SSH on iOS 12 device. Only worked on iPad Air 1, iOS 12.4 Working Get root Set tfp0 to hsp4 Escape Sandbox Restore/Remount RootFS Defeat

null 6 May 11, 2021
ssheven - A modern SSH client for Mac OS 7/8/9.

ssheven - A modern SSH client for Mac OS 7/8/9.

null 446 Jul 26, 2022
An SSH file manager that lets you edit files like they are local

An SSH file manager that lets you edit files like they are local

Allan Boll 445 Jul 29, 2022
Corkscrew is a tool for tunneling SSH through HTTP proxies

Corkscrew is a tool for tunneling SSH through HTTP proxies

Bryan Chan 889 Jul 29, 2022
C++ TCP/IP and SSH stack with bounded run time and no dynamic memory allocations

Static Network Stack TCP/IP stack with all-static allocations designed for bare metal (no operating system) embedded applications with minimal footpri

Andrew Zonenberg 24 Jul 22, 2022
Tinysshd is a minimalistic SSH server which implements only a subset of SSHv2 features

Introduction tinysshd is a minimalistic SSH server which implements only a subset of SSHv2 features. tinysshd supports only secure cryptography (minim

Jan Mojžíš 861 Aug 10, 2022
Bluetooth helper tools for setting up serial ports for e.g. SSH

SSH Helper program so that you can SSH over bluetooth. This can be a useful second way in in case you have a raspberry pi with broken network or firewall config.

Thomas Habets 4 Aug 3, 2022
A simple, cheap, and somewhat secure USB Key for SSH authentication, costs < $5

44Key A simple, cheap, and somewhat secure ed25519 USB Key for SSH authentication, costs < $5 Hardware: https://oshwhub.com/44670/miniusbkey PC Softwa

null 20 Jul 4, 2022
Raven is like a simplified SSH with NAT traversal.

Raven Raven works like a simplified SSH with NAT traversal. Now developing... But you can still have a test for fun! Just fill server_ip in Raven.conf

null 3 Jul 13, 2022