Skip to main content

Passwordless SSH setup for Raspberry Pi, NVIDIA Jetson, or any Linux device

Project description

ssh-keyup

PyPI Python Platform

Set up passwordless SSH on Raspberry Pi, NVIDIA Jetson or any Linux device in one command.

Tired of juggling ssh-keygen, ssh-copy-id (missing on Windows) and ~/.ssh/config edits every time you set up a new device? ssh-keyup handles all three in a single interactive session.

ssh-keyup demo

Quickstart

Install globally with pip:

pip install ssh-keyup

ssh-keyup   # ready to use anywhere

Or run directly without installing:

git clone https://github.com/Kurokesu/ssh-keyup.git
cd ssh-keyup
python ssh_keyup.py   # Windows
python3 ssh_keyup.py  # Linux

Follow the prompts, enter the remote password once and you're done.

SSH from terminal:

ssh mypi   # no password, ever again

Or open VSCode Remote - SSH, your ~/.ssh/config is already set up. Press Ctrl+Shift+P, select Remote-SSH: Connect to Host, pick your alias and get a full IDE on your remote device, no password:

VSCode Remote SSH

Skip the prompts by passing arguments:

ssh-keyup --host 192.168.1.23 --user pi --alias mypi

Or configure a whole fleet:

for host in 192.168.1.10 192.168.1.11 192.168.1.12; do
  ssh-keyup --host $host
done

Why?

# without ssh-keyup (repeat for every new device)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519_rpi5
scp ~/.ssh/id_ed25519_rpi5.pub trinity@192.168.1.23:~/
ssh trinity@192.168.1.23 "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
ssh trinity@192.168.1.23 "cat ~/id_ed25519_rpi5.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm ~/id_ed25519_rpi5.pub"
nano ~/.ssh/config # add Host entry manually
...

# with ssh-keyup
ssh-keyup

Prerequisites

Python 3.8+ and OpenSSH tools (ssh, ssh-keygen) must be in PATH.

  • Windows 10/11: Install Python from python.org or the Microsoft Store. OpenSSH Client is included via Settings > Optional Features or ships with Git for Windows.
  • Linux: sudo apt install python3 openssh-client (usually pre-installed).

Features

  • Generates a per-host Ed25519 key pair (~/.ssh/id_ed25519_<alias>)
  • Deploys public key to remote host in a single SSH session, only one password prompt
  • Never touches your password. ssh-keyup only pipes the public key and SSH handles password authentication directly through its own terminal
  • Adds a named entry to ~/.ssh/config, works instantly with ssh <alias> and VSCode Remote SSH
  • Detects and recovers from host key mismatches (common after reflashing)
  • Handles re-runs gracefully: reuses existing keys or offers regeneration, detects duplicate config entries
  • Works with any device reachable over SSH: Raspberry Pi, NVIDIA Jetson, Orange Pi, VMs, servers
  • Zero dependencies, Python 3.8+ standard library only
  • Installs via pip or runs as a single script

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssh_keyup-1.0.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssh_keyup-1.0.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file ssh_keyup-1.0.0.tar.gz.

File metadata

  • Download URL: ssh_keyup-1.0.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ssh_keyup-1.0.0.tar.gz
Algorithm Hash digest
SHA256 39415d301c9f619ee4dc3ad2e668181176f809e6fcedb40e5ace699bd33fb33d
MD5 d613149732673a370107a1cdb91fa736
BLAKE2b-256 3be5498d319ceb27f63ef748b19751145175b16e51d6546587de6b5b44506829

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssh_keyup-1.0.0.tar.gz:

Publisher: release.yml on Kurokesu/ssh-keyup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ssh_keyup-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ssh_keyup-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ssh_keyup-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 052ad5a30e6c74dc0fdf017f37eb9031f91b95a7097e1acd1d61d1b36648025c
MD5 fd586b711df5b4099e90fc4c2e45a275
BLAKE2b-256 ba34b9ca72c975e92bea17f0219a71ac92f2f3ffc07d7407d51428b55ff187a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ssh_keyup-1.0.0-py3-none-any.whl:

Publisher: release.yml on Kurokesu/ssh-keyup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page