Skip to content

pspssh 1.1.0 — hosts, a keyboard, a terminal

Choose a tag to compare

@cobanov cobanov released this 31 Jul 02:13
· 30 commits to main since this release

The client you can actually use without a computer nearby.

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 now

 pspssh                                    v1.1.0  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 now a choice. Leave it empty and you are asked at connect time, and it is wiped afterwards — which was always the safer arrangement and was impossible while typing meant a computer.

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 the existing six against a real OpenSSH. What still needs a PSP is a screen, a radio and a system keyboard.

Also fixed: 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.0