Short: SSH2 server and client suite with SFTP Author: Stefan Franke (BebboSSH), Michele Dipace (AROS port) Uploader: michele dipace kaffeine net (Michele Dipace) Type: comm/net Version: 1.0.7 Replaces: comm/net/bebbossh.aarch64-aros.lha Requires: AROS for the Raspberry Pi (aarch64) with AROSTCP Architecture: i386-aros WHAT IS THIS? BebboSSH is an SSH2 implementation for Amiga systems by Stefan "Bebbo" Franke. This archive is its port to AROS aarch64 (the Raspberry Pi port of AROS). With it you can log in to an AROS machine from any SSH client, run commands, and copy files with scp and sftp; the native clients connect from AROS to other SSH servers. The original 68k version is comm/net/bebbossh.lha; the AROS i386 build is comm/net/bebbossh.i386-aros.lha, the AROS x86_64 build is comm/net/bebbossh.x86_64-aros.lha. PROGRAMS bebbosshd SSH2 server: remote commands, SFTP, SCP, TCP port forwarding (direct-tcpip), password and public-key login bebbossh SSH2 client, with -L local port forwarding bebboscp SCP client bebbosshkeygen Ed25519 key generator Algorithms: curve25519-sha256 key exchange, ssh-ed25519 host and user keys, aes128-gcm@openssh.com and chacha20-poly1305@openssh.com ciphers. REQUIREMENTS - AROS for the Raspberry Pi, aarch64. Tested on a Raspberry Pi 400 with the raspi-aarch64 build of 2026-09-12 and its Ethernet. - A configured TCP/IP stack (AROSTCP, bsdsocket.library). - No extra libraries: the crypto code is linked into each program. CONTENTS BebboSSH/bebbosshd, bebbossh, bebboscp, bebbosshkeygen BebboSSH/sshd_config.example, passwd.example BebboSSH/README.AROS.txt install and configuration guide BebboSSH/README.md, AROS_PORTING.md, docs/, scripts/ BebboSSH/COPYING, LICENSE license texts (GNU GPL v3) BebboSSH/SHA256SUMS checksums of the files above INSTALLATION 1. Extract the archive to the system volume, SYS:. On the Pi image SYS: is a FAT volume: protect reports an error there, which can be ignored, the programs still run. 2. In an AROS Shell, create the configuration and a host key. The throwaway key first creates the random seed (see README.AROS.txt, Random Numbers): cd SYS:BebboSSH copy sshd_config.example sshd_config copy passwd.example passwd bebbosshkeygen -f T:seed_key delete T:seed_key T:seed_key.pub bebbosshkeygen -f ssh_host_ed25519_key 3. Edit passwd: one "username password" pair per line. The test/test entry of the example is for a first test only; replace it. 4. Start the server: stack 262144 bebbosshd 5. From another machine: ssh username@
To start the network and the server at boot, AROSTCP must start at boot (ENVARC:AROSTCP/AutoRun containing True); then start the server from S:User-Startup a few seconds later. The scripts used on the Pi 400 are in BebboSSH/docs/AROS_AARCH64_RELEASE.md (Autostart). To call the clients from anywhere, copy bebbossh, bebboscp and bebbosshkeygen to C:. Keep bebbosshd in its own directory: the example configuration finds its files through PROGDIR:. CONFIGURATION bebbosshd reads ENVARC:ssh/sshd_config if it exists, otherwise PROGDIR:sshd_config. The main directives (the example sets all but Ciphers and AllowTcpForwarding, which keep their defaults): Port 22 TCP port ListenAddress 0.0.0.0 address to listen on (0.0.0.0 = all) HostKey PROGDIR:ssh_host_ed25519_key Passwords PROGDIR:passwd HomeDir DH0: start directory of commands and SFTP Stack 262144 stack of command tasks (default 1 MiB) DebugLevel 1 log level: 0 none to 8 ultra, or a name such as error or debug SendNoop some keepalive messages to idle sessions Ciphers aes128-gcm@openssh.com,chacha20-poly1305@openssh.com ciphers offered (both by default) AllowTcpForwarding yes direct-tcpip forwarding (ssh -L); no refuses it Command-line options override the file: -p port, -A password file, -K host key, -H home directory, -v log level (for example -v5). Public-key login reads ENVARC:.ssh/authorized_keys (OpenSSH format, one key per line). README.AROS.txt describes every file in detail. USAGE From a PC with OpenSSH: ssh user@aros-host version scp file.txt user@aros-host:SYS: sftp user@aros-host From AROS: bebbossh user@host bebbossh -i SYS:keys/id_ed25519 user@host command bebbossh -L 8080:localhost:80 user@host bebboscp localfile user@host:remotefile bebbosshkeygen -f SYS:keys/id_ed25519 The first connection to a host asks, in a console window, whether to trust its key: answer yes. The key is then kept in ENVARC:.ssh/known_hosts. Without a console (for example in a remote command) an unknown host is refused. A host whose key differs from the stored one is always refused with a warning; if the change is expected, remove its line from known_hosts. KNOWN LIMITS - No full interactive PTY programs: the interactive shell runs simple commands, and programs that read their input are rejected with exit status 2. - No redirection or pipes (>, <, |) in remote commands. - A command typed in an interactive session runs inside the server: other connections wait until it ends, and Ctrl-C does not stop it. Run long commands as "ssh host command", which runs them in a separate task. - A remote command still running after 30 seconds gets a timeout notice and exit status 124, but it keeps running until it ends. - On the Raspberry Pi 400, a server logging at debug level (-v5) into a console window during heavy transfers froze the system. Keep the default log level there. - OpenSSH "put -p" sets the file time before it closes the file, and AROS updates the date on close, so that time is not kept. - passwd.example contains a test password: change it. WHAT IS NEW IN 1.0.7 - 1.0.6 refused password logins from clients that send SSH_MSG_IGNORE before the password, as PuTTY, plink, pscp, psftp and WinSCP do; 1.0.7 accepts them. Updating is recommended. - Keys and session secrets come from a SHA-512 entropy pool with a seed file, ENVARC:.ssh/random_seed, ported from bebbossh 1.46.1 by Matthias Muench. README.AROS.txt (Random Numbers) explains the seed. - More bounds checks in the SFTP server, in public-key login and in the clients; bebbosshkeygen checks its writes and wipes its secrets. - bebbosshkeygen shows its questions at a console and waits for the answer; it took the command line as its first answer. - AllowTcpForwarding off (or any unknown value) refuses forwarding; 1.0.6 refused it only with no, false and 0. TESTED On a Raspberry Pi 400 with the programs of this archive: OpenSSH ssh, scp and sftp; 100 logins in a row; 80 file transfers without pauses; 4 MiB copies with both ciphers; uploads up to 16 MiB; two servers at once; connections dropped during commands; Ctrl-C on an idle server, during a command and while a dropped connection's command still runs, each followed by a restart; the login and host key checks of this release, also a password login as PuTTY sends it; the native clients over loopback. SOURCE AND LICENSE GNU GPL v3 or later (see COPYING). Source of this release: https://github.com/kaffeine1/bebbossh-aros/tree/v1.0.7-aros-aarch64 Original BebboSSH: https://franke.ms/git/bebbo/bebbossh Bug reports: https://github.com/kaffeine1/bebbossh-aros/issues Port by Michele Dipace