Public Access
The SSH App opens one session to a shell, over libssh (LibSSH-ESP32 5.10.0) on mbedTLS. A server is trusted the first time on its fingerprint, and a changed key is a warning with Cancel selected. The password is typed each time and kept nowhere; or the device makes itself an Ed25519 key, whose public half is shown, written to /ssh/id_ed25519.pub and printed by `ssh status`. lib/term is the terminal: what a shell, less, top, nano and vim send, with sixteen colours, scroll regions, the alternate screen and 100 lines of scrollback. Five text sizes with Ctrl and + or -, from 60x20 to 26x8, told to the far end. The session goes on when the App is left; SSH shows in the Status Bar. `ssh user@host` in the Shell opens the App. Also: - Keys that aren't characters carry Shift, Ctrl and Alt. The terminal needs it, and it makes Ctrl+Fn+up/down in a note and Shift+Tab in Gemini work from the real keyboard. - IRC doesn't try to connect under 60 KB free: started with a session open, its TLS handshake took the heap down to 236 bytes. - libssh's own curve25519 is left out of the build (scripts/libssh_filter.py): libsodium's has the same names. Costs 292 KB of flash and about 50 KB of heap while a session is open; not started under 75 KB free. Docs: guide page, how-to, FAQ, home page, Status Bar, SD card folders, the memory how-to, README, glossary, N1 notes with Q254 to Q266 and the checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
91 lines
4.0 KiB
TOML
91 lines
4.0 KiB
TOML
# Real screenshots (the Debug Console's `screenshot` command, 240 x 135 pixels, shown at twice that).
|
|
[[screen]]
|
|
file = "sweep.png"
|
|
alt = "The LoRa Scanner's Sweep view: bars of signal strength from 863.0 to 870.0 MHz with peak marks, a waterfall under them, and a footer reading floor -100, 863.2 MHz at -89 dBm"
|
|
caption = "LoRa Scanner, Sweep"
|
|
|
|
[[screen]]
|
|
file = "sniffer.png"
|
|
alt = "The LoRa Scanner's packet list on LongFast 869.525 MHz while a Capture is recording: three packets, each with its time, RSSI, SNR and Meshtastic sender and hops"
|
|
caption = "LoRa Scanner, packets"
|
|
|
|
[[screen]]
|
|
file = "sky.png"
|
|
alt = "The GNSS App's sky view: a circle with the satellites of four constellations as coloured dots, and a legend counting them: GPS 7 of 10, GLONASS 5 of 5, Galileo 1 of 1, BeiDou 4 of 5, 3D Fix"
|
|
caption = "GNSS, sky"
|
|
|
|
[[screen]]
|
|
file = "gemini.png"
|
|
alt = "The Gemini App on the page Project Gemini at geminiprotocol.net: a heading, then the start of the text, Gemini in 100 words"
|
|
caption = "Gemini"
|
|
|
|
[[screen]]
|
|
file = "system.png"
|
|
alt = "The System App's overview: Core 0 at 47 percent, Core 1 at 64 percent, memory 49 KB free, network, battery 97 percent, uptime, and a graph of both cores over two minutes"
|
|
caption = "System"
|
|
|
|
[[screen]]
|
|
file = "notes.png"
|
|
alt = "The Notes editor on shopping-list.txt, 66 bytes, saved: Shopping list, milk, and a longer line that wraps on the screen"
|
|
caption = "Notes"
|
|
|
|
[[screen]]
|
|
file = "storage.png"
|
|
alt = "The Storage App at the top of the SD card: the folders captures, gemini, gnss, irc, updates and wifi, and a Maintenance row, with 7.3 GB free"
|
|
caption = "Storage"
|
|
|
|
[[screen]]
|
|
file = "update.png"
|
|
alt = "The full-screen progress of a firmware update: Receiving v0.10.0, a bar at 28 percent"
|
|
caption = "A firmware update"
|
|
|
|
[[screen]]
|
|
file = "shell.png"
|
|
alt = "The Shell after rm -f /gt2/*: the command in blue, then rm: 5 match /gt2/* and five lines rm: ok 1 files, above an empty input line"
|
|
caption = "Shell"
|
|
|
|
[[screen]]
|
|
file = "picture.png"
|
|
alt = "A picture open in the Storage App: colour bars, grey and colour gradients and a yellow ellipse, shrunk to fit the screen and dithered to its 256 colours"
|
|
caption = "Storage, a picture"
|
|
|
|
[[screen]]
|
|
file = "share.png"
|
|
alt = "The Storage App's Share screen: a QR code, the address 172.16.42.25, the code 825 132, Nothing asked yet, Not encrypted, and the key that stops sharing"
|
|
caption = "Storage, sharing with a browser"
|
|
|
|
[[screen]]
|
|
file = "vpn.png"
|
|
alt = "Settings, VPN: VPN On, Start with Wi-Fi On, Import /vpn/wg0.conf, Forget it; then It is up, heard 66 s ago, the server's address, and This device 10.9.0.2, through it everything. VPN shows in the Status Bar"
|
|
caption = "Settings, VPN"
|
|
|
|
[[screen]]
|
|
file = "ssh.png"
|
|
alt = "The SSH App's list: a saved host, tester at 172.16.42.249 port 2222, then New connection and This device's key"
|
|
caption = "SSH, the hosts"
|
|
|
|
[[screen]]
|
|
file = "ssh-trust.png"
|
|
alt = "A dialog over the SSH App: A server not met before, the address 172.16.42.249, and a SHA256 fingerprint on two lines; buttons Cancel, selected, and Trust it"
|
|
caption = "SSH, a server met for the first time"
|
|
|
|
[[screen]]
|
|
file = "ssh-terminal.png"
|
|
alt = "The SSH App's terminal showing top on a remote machine: uptime, tasks, memory, then a reverse-video header and five processes. SSH shows in the Status Bar"
|
|
caption = "SSH, top on another machine"
|
|
|
|
[[screen]]
|
|
file = "ssh-key.png"
|
|
alt = "This device's key: its public half, for a server's authorized_keys file, a line starting ssh-ed25519; it is also in /ssh/id_ed25519.pub, and the private half never leaves"
|
|
caption = "SSH, this device's key"
|
|
|
|
[[screen]]
|
|
file = "ssh-changed.png"
|
|
alt = "A dialog over the SSH App: THE SERVER'S KEY CHANGED. Someone in between? Now it is, and a SHA256 fingerprint; buttons Cancel, selected, and Replace"
|
|
caption = "SSH, a server whose key changed"
|
|
|
|
[[screen]]
|
|
file = "help.png"
|
|
alt = "The help panel over the Launcher: Keys: Launcher, up and down, Enter opens the App, then Everywhere: back, home, the arrows, Fn h for these keys and Fn p for a screenshot"
|
|
caption = "The help panel (Fn+h)"
|