Mirror of cy384/ssheven@github.com - Mac OS 7-9 SSH client
Go to file
cy384 f8a6cd1043 if the key is invalid, don't save the path 2020-10-04 12:54:59 -04:00
CMakeLists.txt code cleanup and minor bug fixes 2020-09-12 20:16:51 -04:00
LICENSE init 2020-06-08 12:53:38 -04:00
README.md update roadmap in readme 2020-10-04 12:21:39 -04:00
ssheven-console.c preferences dialog with color settings 2020-10-04 12:19:49 -04:00
ssheven-console.h preferences dialog with color settings 2020-10-04 12:19:49 -04:00
ssheven-constants.r preferences dialog with color settings 2020-10-04 12:19:49 -04:00
ssheven-debug.c fix typo in error message 2020-09-13 12:20:13 -04:00
ssheven-icons.r preferences dialog with color settings 2020-10-04 12:19:49 -04:00
ssheven.c if the key is invalid, don't save the path 2020-10-04 12:54:59 -04:00
ssheven.h save and load preferences 2020-10-03 22:30:48 -04:00
ssheven.r preferences dialog with color settings 2020-10-04 12:19:49 -04:00

README.md

ssheven box

ssheven

A modern SSH client for Mac OS 7/8/9.

Project status: as of 0.6.1 (see github releases), a functional (but not completely secure) SSH client with color terminal emulation, able to login via key or password. See roadmap below for upcoming work (i.e., things that aren't done yet).

ssheven screenshot

system requirements

  • CPU: Any PPC processor, or at least a 25 MHz 68040/68LC040. Presently, all 68030/68020 CPUs are too slow.
  • RAM: 2MB.
  • Disk space: 1MB for the fat binary.
  • System 7.5 or later, earlier System 7 versions might be possible with the Thread Manager extension installed.
  • Open Transport networking required, version 1.1.1 or later recommended.

feature/bug-fix roadmap

0.7.0

  • preferences dialog with color mode (bright/dark), terminal type (monochrome, color, etc.) options
  • preferences file (save key locations, known hosts/keys, most recent host+port+(key or password choice), color prefs)
  • add check in key dialog to make sure the keys are still in same location, otherwise prompt again

0.8.0

  • check server keys/known hosts
  • improve keycode translation (especially control combos)
  • hook scrolling into vterm to reduce redraws/blanking

0.9.0

  • clean up libssh2 network ops (write fn, read safety, don't allow send until connected, quit while connected mess)
  • clean up/update versions of libssh and mbedtls (get as close to mainline as possible, revert unecessary changes)
  • build/packaging scripts?

1.0.0 (first "real" release)

  • nicer error presentation for more failure cases
  • read Apple HIG and obsessively optimize placement of all GUI elements
  • improve RNG
  • license info in an about box type thing
  • finish and upload papercraft box, floppy sticker artwork, icon/logo svg

?.?.?

  • solve 68k crashes/finicky build issues (retro68 issue)
  • initial key exchange is too slow for 68030 and 68020 systems (improve mbedtls_mpi_exp_mod)
  • console draw speed is slow/flickery (maybe try to use an "offscreen graphics world" framebuffer? big refactor)
  • font face and size options
  • scp file transfer
  • text selection + copy
  • more complete color support (will need to use color quickdraw, currently uses an 8-color hack for traditional quickdraw)
  • preference file sometimes doesn't have the icon (fix up the filetype association etc.)
  • keyboard-interactive authentication

build

Uses Retro68 and cmake.

Requires mbedtls, libssh2, and libvterm, see my (cy384's) ports of those libraries for details. Note that you need to build/install each for both platforms (m68k and PPC).

  • mkdir build && cd build
  • cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/powerpc-apple-macos/cmake/retroppc.toolchain.cmake or cmake .. -DCMAKE_TOOLCHAIN_FILE=/your/path/to/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake
  • make

Use Rez to build the fat binary: join the data fork from the PPC version and the resource fork from the m68k version.

I have some build scripts that I'll clean up and publish with the 1.0.0 release.

note to self: binary resources can be extracted in MPW via: DeRez "Macintosh HD:whatever" -skip "'CODE'" -skip "'DATA'" -skip "'RELA'" -skip "'SIZE'" etc., this is especially useful for icons

license

Licensed under the BSD 2 clause license, see LICENSE file.