Onboarding
Generate an SSH Key on Any OS
Create an SSH key pair on Linux, macOS, Windows PowerShell, WSL, or Git Bash so you can authenticate securely with SQLitePilot.
Last updated: Dec 9, 2025
You only need one solid SSH key pair to unlock remote SQLite hosts from SQLitePilot. The steps below walk through the most common environments so you can generate a modern Ed25519 key (or fall back to RSA if required).
Before you start
- Pick a short, memorable label for the key so you recognize it later (for example
work-laptop-main). - Decide where the private key should live. The default
~/.sshfolder is correct for Linux, macOS, WSL, and Git Bash. On Windows PowerShell, the equivalent folder is%UserProfile%\.ssh(usuallyC:\Users\<you>\.ssh). - Close any clipboard or password manager apps that might auto-format text, because private keys must keep their original spacing when you copy them into SQLitePilot.
Linux or macOS (Terminal + OpenSSH)
- Open Terminal.
- Run
mkdir -p ~/.ssh && chmod 700 ~/.sshto make sure the directory exists with safe permissions. - Generate the key:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "work-laptop-main"
- Use
-t rsa -b 4096only if your system rejectsed25519. - The
-a 100flag adds key-derivation rounds for better brute-force resistance.
- Press Enter to accept the default path (unless you need a different filename).
- Enter a passphrase when prompted. It protects the private key even if the file leaks.
- Confirm the files exist:
ls -l ~/.ssh/id_ed25519 ~/.ssh/id_ed25519.pub. - Copy the public key to your server (
ssh-copy-idor manual paste) before storing the private key inside SQLitePilot.
Windows 10/11 (PowerShell with built-in OpenSSH)
- Launch PowerShell as your normal user.
- Ensure the OpenSSH client feature is installed:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'. - Create the
.sshdirectory if it does not exist:
New-Item -ItemType Directory -Force "$env:USERPROFILE\.ssh" | Out-Null
- Generate the key pair:
ssh-keygen -t ed25519 -a 100 -f "$env:USERPROFILE\.ssh\id_ed25519" -C "work-laptop-main"
- Set NTFS permissions so only your account can read the private key:
icacls "$env:USERPROFILE\.ssh\id_ed25519" /inheritance:r /grant:r "$env:USERNAME":R
- Display the public key so you can load it onto your server:
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
- When SQLitePilot asks for the private key, open the file in a plain-text editor such as Notepad and copy everything exactly.
Windows Subsystem for Linux (WSL)
- Follow the Linux instructions from inside your WSL distribution. The files live under
/home/<user>/.sshby default. - If you need to use the same key from Windows tools, copy it to
\wsl$\<Distro>\home\<user>\.sshor export viacat ~/.ssh/id_ed25519. - Remember that Windows and WSL maintain separate SSH agents; start the one that matches the environment where you run SQLitePilot uploads.
Git Bash (Windows)
- Open Git Bash.
- Run the same command as macOS/Linux:
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519 -C "work-laptop-main". - Git Bash maps
~/.sshtoC:\Users\<you>\.ssh, so the key is shared with other Windows tools automatically. - Use
clip < ~/.ssh/id_ed25519.pubto copy the public key to the clipboard, or open the file via File Explorer.
Verify the key pair
After generating the key on any platform:
- List the fingerprint to double-check the file:
ssh-keygen -lf ~/.ssh/id_ed25519.pub(adjust the path on Windows). - Test SSH into a known server:
ssh -i ~/.ssh/id_ed25519 user@server. - Once the remote host accepts the key, open SQLitePilot → Keys and paste the private key block exactly as it appears, including the
BEGIN/ENDlines.
Troubleshooting tips
ssh-keygen: command not found– install OpenSSH (Linux packageopenssh-client, macOS via Xcode Command Line Tools, Windows via optional features).- Permission denied (publickey) – confirm the public key really lives in the server’s
~/.ssh/authorized_keysfile and the permissions are600. - Clipboard mangled the key – recopy using a plain-text editor; never paste through rich-text apps like Word.
- Need multiple keys – generate additional files (for example
~/.ssh/id_ed25519_sqlitepilot) and label them with-Cso you can tell them apart inside SQLitePilot.
With a fresh key pair safely stored in SQLitePilot, you are ready to upload SSH keys, create remote connections, and explore your databases without passwords.