Short: SSH2 for the Amiga Author: s.franke@bebbosoft.de Uploader: s franke bebbosoft de Type: comm/net Version: 1.14 Architecture: m68k-amigaos Required: bsdsocket.library (e.g AmiTCP) =============================================================================== NAME amigassh SSH2 for the Amiga, 68000+. Needs a server that supports the used crypto stuff. It will work on an unaccelerated Amiga but building the connection takes minutes! Open a shell on the host using your console colors and mouse. Or execute a command via SSH2. USAGE: amigassh [options] [user@]host[:port] [command [args]] -? display this help -p define a port -T don't allocate a pseudo terminal -v set verbosity, 0 = OFF, 7 = TRACE command to run instead of shell =============================================================================== SUPPORT ME Support me via PayPal: https://t.ly/N8WkB also small monthly donations do help :-) =============================================================================== COPYRIGHT ed/curve25519 code from Public Domain, Authors: - Daniel J. Bernstein - Niels Duif - Tanja Lange - lead: Peter Schwabe - Bo-Yin Yang * optimized, modified to use 16 bit integers by Stefan "Bebbo" Franke aes, gcm, sha256, sh512, amigassh itself: - Stefan "Bebbo" Franke Written in 2024 by Stefan "Bebbo" Franke To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see . =============================================================================== DISCLAIMER OF WARRANTY Software is provided "AS IS," without a warranty of any kind. You may use it on your own risk. =============================================================================== LIMITATION OF LIABILITY I SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY YOU OR ANY THIRD PARTY AS A RESULT OF USING OR DISTRIBUTING SOFTWARE. IN NO EVENT WILL I BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF I HAVE ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. =============================================================================== HISTORY amigassh V1.14 * use all 16 bits of a WORD * enhanced C code with some asm statements * creating a key pair is down to ~15s * verifying the host is down to ~35s amigassh V1.13 * compute the private key before establishing the connection This increases the chance to establish a connection on slow Amigas * some speed improvements measured with WinUAE cycle exact A500: * creating a key pair is down to 43,2s! * verifying the host is down to 2:14,6! * removed CTRL+F * removed using c stdio * add -v switch amigassh V1.12 * fixed some bus errors, now it really runs on 68000 * CTRL+F is now used to ***Break * support sending CTRL+A/CTRL+E * better mapping of backspace and delete * stack usage is now below 4000 bytes * added -T switch to run without pseudo terminal amigassh V1.11 * reworked and combined the ed25519 and curve25519 code. Now 16 bit integers are sufficient! * the resulting program can now be used on a 68000. amigassh V1.10 * fix an enforcer hit (using updated binutils/gcc) amigassh V1.9 * renamed `mono` to `xterm-amiga`. Install it! Necessary since too many stuff checks for the string `xterm`... * added mouse support * patch the window title, like xterm * suppres right mouse button stuff, also during login amigassh V1.8 * support tooltype CONSOLE * modify __chkabort: use CTRL+E to interrupt amigassh, CTRL+C is handled only by the host * TERM can be set by an environment variable or define it in the icon * fixed an enforcer hit amigassh V1.7 * fix broken window resize - was filtered too... amigassh V1.6 * add key mappings for CTRL+ALT+CURSOR -> PgUp/Down,Pos1/End * pass CTRL+D and make it work * print preauth banner * support CTRL+S/CTRL+Q * suppress menu messages from KingCON amigassh V1.5 * fix build... * support redirected stdin/stdout amigassh V1.4 * bad version... amigassh V1.3 * amigassh is now pure. set the flag and make it resident! * internal setting of a suitable stack size * verbose error messages * unify ed25519/curve25519 code * properly create ENVARC:.ssh if missing * some terminal improvements amigassh V1.2 * properly exit after logout, no CTRL+D required * mono now supports 8 colors - update that file! * handle key stroke repetition * bind local, needed by roadshow * fix reading after buffer pointer changed amigassh V1.1 * some support for CTRL/ALT, * better cursor keys, * better terminfo `mono` * fix if stdin is a file/pipe amigassh V1.0 * initial version =============================================================================== SYNOPSIS amigassh [-p port] [user@]host[:port] The port defaults to 22. The user is read from the environment variable `USER`. =============================================================================== DESCRIPTION amigassh is an implementation of SSH2. The supported cryptographic methods are * curve25519-sha256 * ssh-ed25519 * aes128-gcm@openssh.com * hmac-sha2-256 * sha512 Only password based authentication is supported for now. Install the terminfo `xterm-amiga` on the remote system! Feel free to improve it! On many systems you have to copy it as root into `/usr/share/terminfo/x` Pimp your `.bash_profile` to unset `LANG` since the Amiga doesn't like UTF8... A convenient way is to add this to `.bash_profile`: ``` if [ "$TERM" == "xterm-amiga" ]; then unset LANG fi ``` =============================================================================== RANDOM HINTS * the know hosts are stored in `ENVARC:.ssh/known-hosts` * the random generator is not the best... It's rand() pimped with time and vpos. Then SHA256 is applied. Good enough? But who would talk about security on an unprotected system like the Amiga? * preset your username with set USER= you can do this in `s:shell-startup` * You can start it from the workbench! Use the icon tooltypes to set COMMAND a remote command to execute instead of a shell CONSOLE an Amiga console string (defaults to CON://///AUTO/CLOSE/WAIT) HOST the host name PORT the port (defaults to 22) TERM the terminal emulation (defaults to xterm-amiga) USER the user name * no console graphics? install the `xterm-amiga` terminfo! * no console colors? install the `xterm-amiga` terminfo! * no mouse in mc or other applications? install the `xterm-amiga` terminfo! * keys not working properly? install the `xterm-amiga` terminfo! * some key does still not work try pimping the xterm-amiga terminfo. use `tic -xsv9 -o. xterm-amiga.src` * console displays trash? text look blank? lines are bogus? unset the variable `LANG`