Skip to content

Kurokesu/ssh-keyup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssh-keyup

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 git+https://github.com/Kurokesu/ssh-keyup.git

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 via command:

ssh mypi   # no password, ever again

Or open VSCode Remote - SSH — your ~/.ssh/config is already set up. Hit 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

You can also skip the remote host prompts:

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 (you do this 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 the public key to remote host in a single SSH session — only one password prompt
  • Never touches your passwordssh-keyup only pipes the public key; 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 you can reach 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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages