Create and register an SSH key
Carrot Web is sufficient for normal settings and log tasks. Use SSH when diagnostics or development require it.
Public and private keys
| File | Purpose | Where to keep it |
|---|---|---|
id_ed25519.pub | Public key used to identify an authorized user | Register as an authentication SSH key on GitHub |
id_ed25519 | Private key that proves your identity | Only on your own PC or phone |
Never paste the private key into GitHub, chats or public documentation. Registering a GitHub username on the device imports that account's SSH public keys.
Windows PowerShell example
Run on your PC:
ssh-keygen -t ed25519 -C "carrotpilot-device-access"Confirm the save location and set a passphrase. Do not overwrite an existing key; choose a different filename. The default location is your user home's .ssh directory.
- Register the contents of the .pub file in GitHub account settings → SSH keys as an authentication key.
- Enable SSH on the device and register your GitHub username. Menu locations vary by device UI.
- Connect from a PC on the same network using the corresponding private key:
ssh -i "$env:USERPROFILE/.ssh/id_ed25519" comma@192.168.0.25Replace the example IP. Verify that the destination really is your device before accepting its first host key.
Connection problems
- Timeout: check power, network, current IP and SSH enablement.
- Permission denied: check the
commausername, selected private key and public key registered on GitHub. - Selected a .pub file: clients need the private key for authentication.
- Host key changed: check for IP reuse or a device reinstall before resolving it.
PC connection · Phone connection.
Source reference
Reference checked 2026-10-30 · carrot-wip · 10bf0a56.
openpilot/selfdrive/ui/widgets/ssh_key.py · docs/user/ko/carrot-web.md
The development branch continues to change. Check your device’s branch, commit and current settings together.