Repository navigation
pspssh 1.1.1 — a repository that builds
A one-line fix to something v1.1.0 got wrong, plus the check that would have caught it. Everything below is v1.1.0's feature list — if you are installing for the first time, install this one.
The fix
third_party/ was gitignored, and src/psp/gfx.c includes the font from it. So the file every glyph on screen comes from was never in the repository, and git clone && tools/build-psp.sh failed at the first compile.
Nobody noticed because the file was sitting in the tree it had been written in. tools/release.sh now builds from a fresh clone rather than from the working tree, because the rule worth enforcing is not "the author can build it" but "this can be built from what was published".
The download below is unaffected — v1.1.0's EBOOT.PBP was fine, only the source tree was not.
What v1.1.x is
v1.0.0 proved a PSP Go could complete a modern SSH handshake. It also ran one hardcoded command, took its server from a text file you had to edit on a laptop, and printed the host key's fingerprint without checking it against anything. All three are fixed.
Servers live in the application
pspssh v1.1.1 Mert Cobanov
pve bb@192.168.8.45:2222
> macmini mert@192.168.1.20:22
laptop mert@10.0.0.4:22
+ add a host
X connect [] edit /\ delete SEL forget key O quit
Add, edit and delete hosts with the system on-screen keyboard. The list is written through a temporary file and moved into place, so a battery pull halfway through adding one server cannot cost you the others.
Storing a password is a choice. Leave it empty and you are asked at connect time, and it is wiped afterwards.
A terminal, not a printout
Colours, cursor addressing, erase, insert and delete, scroll regions. What a shell sends, drawn the way a shell means it, instead of ESC[0;32m appearing where a green prompt should be.
Typing is line at a time, because the keyboard is a modal dialog. The buttons carry what a line cannot: Enter, Ctrl-C, Ctrl-D, Tab, Escape, Ctrl-L, and the arrow keys on the d-pad — so shell history works.
Host keys are checked
Trust on first use, then the same key every time. A change is refused, with no override on that screen: on a handheld that button is pressed before it is read, and it is the only moment an interception is visible.
Servers do get rebuilt, so a key can be forgotten — from the host list, with SELECT, behind a confirmation. Deliberately not next to the alarm it silences.
Under it
The screen is drawn by this application now rather than by pspDebugScreen, which is what made a keyboard and a terminal possible at all — the on-screen keyboard renders into the GU draw buffer and the debug console knows nothing about one.
Three modules have no hardware in them, so 106 assertions run on a laptop: the storage layer, the host key check, and the escape-sequence parser. Plus six against a real OpenSSH.
Also fixed since v1.0.0: the handshake timeout counted loop turns and called them milliseconds; the version constant named a build that was not running; the config reader stopped at 1023 bytes without saying so; and the application compiled wolfSSL's headers as a different build from the library it links against.
Installing
Download EBOOT.PBP below and copy it to the memory card as PSP/GAME/pspssh/EBOOT.PBP — on a PSP Go the internal storage is ef0: rather than ms0:. Launch it from the XMB under Game and add your servers from the list.
A PSP does WEP and WPA-TKIP. WPA2-AES needs the wpa2psp plugin on 6.61 PRO; on ARK CFW it is already there.
Full changelog: v1.0.0...v1.1.1