Skip to content

pspssh 1.0.0 — it works

Choose a tag to compare

@cobanov cobanov released this 31 Jul 01:12
· 38 commits to main since this release
b020a1e

A PSP connects to a modern SSH server.

Confirmed on a PSP Go running 6.61 PRO-C: Wi-Fi up, socket open, curve25519-sha256 key exchange, ssh-ed25519 host key verified, password authentication, a pty, a shell, and its output on screen. The server's own log says Accepted password and Starting session: shell.

Why this needed writing

PSPSSH, the existing client, is a 2008 port of Dropbear 0.48. It offers diffie-hellman-group1-sha1, ssh-rsa and aes128-cbc — none of which a current OpenSSH accepts by default, so it cannot reach a modern server at all. The fix is not to weaken every server you own.

What it negotiates

curve25519-sha256   key exchange
ssh-ed25519         host key
aes256-ctr          cipher
hmac-sha2-256       MAC

Pinned to exactly those, one name per slot. In the captured handshake the server offered 1256 bytes of algorithms including post-quantum sntrup761x25519-sha512; the console offered 168. A weak session cannot be negotiated because there is nothing to fall back to.

Installing

Copy EBOOT.PBP and pspssh.cfg to ms0:/PSP/GAME/pspssh/ — on a PSP Go the internal storage is ef0:. Edit pspssh.cfg with your server, launch it from the XMB under Game.

Needs custom firmware and a Wi-Fi connection already saved in the PSP's own network settings. The app lists what it finds and tries them in turn, so the profile number does not have to be guessed.

What it does not do yet

There is no keyboard. It reads the server from a config file, runs uname -a; id and shows the output on the debug screen — enough to prove a session carries real output, not yet a terminal you can type in. An 80×30 grid is #4 and input is #2.

The host key is displayed but not remembered, so a changed key is not yet refused.

pspssh.cfg holds the password in plain text on a memory card. Use an account you are willing to have on a games console.