Public Access
SSH client: a terminal on another machine (#2)
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
This commit is contained in:
@@ -365,6 +365,40 @@ rows = [
|
||||
["; .", "up, down"],
|
||||
]
|
||||
|
||||
[[scope]]
|
||||
id = "ssh"
|
||||
title = "SSH, the hosts"
|
||||
rows = [
|
||||
["Enter", "connect, open"],
|
||||
["; .", "up, down"],
|
||||
["n", "a new connection"],
|
||||
["d", "forget this host"],
|
||||
]
|
||||
|
||||
[[scope]]
|
||||
id = "ssh-terminal"
|
||||
title = "SSH, the terminal"
|
||||
rows = [
|
||||
["`", "Esc"],
|
||||
["Alt `", "a backtick"],
|
||||
["Fn ; . , /", "the arrows"],
|
||||
["Fn Shift ; .", "Page Up, Page Down"],
|
||||
["Ctrl a..z", "Ctrl+C and the rest"],
|
||||
["Alt ; .", "scroll back, forward"],
|
||||
["Ctrl + -", "larger, smaller text"],
|
||||
["Ctrl Alt q", "disconnect"],
|
||||
["Fn `", "leave it running"],
|
||||
]
|
||||
|
||||
[[scope]]
|
||||
id = "ssh-key"
|
||||
title = "SSH, this device's key"
|
||||
rows = [
|
||||
["Enter", "make a key, or a new one"],
|
||||
["w", "write the public half to the card"],
|
||||
["`", "back"],
|
||||
]
|
||||
|
||||
[[scope]]
|
||||
id = "notes"
|
||||
title = "Notes, the list"
|
||||
|
||||
@@ -59,6 +59,31 @@ 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"
|
||||
|
||||
Reference in New Issue
Block a user