Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ephemeral Tailscale SSH Client

A portable tool for establishing temporary SSH access to remote hosts over a private Tailscale network without requiring permanent Tailscale installation or admin privileges on client machines. Also bundles a file sharing server (copyparty) for convenient file transfers.

How It Works

  • Creates an ephemeral tsnet node that joins your Tailscale network
  • Opens a local TCP proxy for SSH traffic through the Tailscale network
  • Optionally starts a copyparty file sharing server on port 9001 (--enable-cp)
  • Provides a shared clipboard via copyparty's web UI (/clipboard.txt)
  • Uses native SSH client with all its features (keys, config, port forwarding)
  • Removes all state on exit, leaving no traces of the connection
  • No system-wide Tailscale installation required

Features

  • Zero persistent state - All credentials and connection data removed on exit
  • No elevation required - Runs as regular user
  • Ephemeral tailnet nodes - Automatically removed from your network
  • Built-in file sharing - Copyparty web server on port 9001 for easy file transfers
  • Graceful cleanup - Handles Ctrl+C (SIGINT) for clean teardown
  • Cross-platform - Tested on Windows & Linux
  • Native SSH - Uses your existing SSH client and configuration

Installation

Prerequisites:

  • Go 1.22 or later (only for building from source)
  • Valid Tailscale account with auth key generation access
  • SSH access enabled on the remote host

From Releases (Recommended):

Download the latest pre-built binary for your platform from the Releases page.

Linux/macOS:

# Make it executable
chmod +x <binary path>

Windows:

# Download the exe from releases
# Run directly or move to a directory in your PATH

Build from source:

Place copyparty-sfx.py in src/ before building (can be a blank placeholder; download the real one from copyparty releases to enable the file sharing feature):

git clone https://github.com/dhr412/ephemeral-tailscale
cd ephemeral-tailscale
curl -fsSL https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py -o src/copyparty-sfx.py
go build -o tssh ./src/

Usage

./tssh [--enable-cp]

When prompted, provide:

  • Tailscale ephemeral auth key
  • Host Tailscale address (e.g., 100.64.1.5 or hostname.tailnet.ts.net)
  • Local proxy port (default: 22122)

Use --enable-cp to start a copyparty file sharing server on port 9001, including a shared clipboard at http://<host-ip>:9001/clipboard.txt accessible from any device on the network. Requires Python on the host machine.

Then connect using your SSH client:

ssh username@localhost -p 2222

Help:

./tssh help

License

This project is licensed under the MIT license.

About

Zero-install portable ephemeral SSH access over Tailscale using tsnet

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages