Skip to content

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

License

Notifications You must be signed in to change notification settings

Kurokesu/ssh-keyup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssh-keyup

License 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