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.10 Replaces: comm/net/bebbossh.i386-aros.lha Requires: AROS One i386 (ABIv0) with a TCP/IP stack (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 i386 (the "alt-abiv0" ABI of AROS One). 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 x86_64 build is comm/net/bebbossh.x86_64-aros.lha, the AROS aarch64 build is comm/net/bebbossh.aarch64-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 One i386 (ABIv0, "alt-abiv0"). - 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 a persistent volume, for example DH0:. 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 DH0: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 Under QEMU without hardware virtualisation bebbosshkeygen warns that the CPU timer shows little jitter; the key then relies more on the timer wake-ups and the seed (README.AROS.txt, Random Numbers). 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 server at boot, add these lines to S:User-Startup: Stack 262144 If EXISTS DH0:BebboSSH/bebbosshd Run DH0:BebboSSH/bebbosshd EndIf 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, AllowTcpForwarding and InteractiveShell, 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 without this line only aes128-gcm is offered AllowTcpForwarding yes direct-tcpip forwarding (ssh -L); no refuses it InteractiveShell yes commands of the interactive shell and of "ssh -t host command" get the SSH session as console; no: commands without input 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:DH0: sftp user@aros-host From AROS: bebbossh user@host bebbossh -i DH0:keys/id_ed25519 user@host command bebbossh -L 8080:localhost:80 user@host bebboscp localfile user@host:remotefile bebbosshkeygen -f DH0: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 - Every line of the interactive shell runs in a shell of its own, so local variables and aliases do not carry over to the next line. - A command without a terminal ("ssh host command") gets no input, and no redirection or pipes (>, <, |). - A command without a terminal still running after 30 seconds gets a timeout notice and exit status 124, but it keeps running until it ends. - 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.10 - Console for commands (InteractiveShell in sshd_config, on by default). A command typed in the interactive shell, or started with "ssh -t host command", runs in its own task with the SSH session as console: it can ask questions and read the answers, its output arrives while it runs, Ctrl-C stops it, redirection to a file works and other connections are served meanwhile. TESTED On AROS One i386 under QEMU, with the programs of this archive: in the console, a question with a typed answer, output while a script runs, Ctrl-C, redirection, bebbosshkeygen asking for the file name, a bebbossh session inside the session, "ssh -t" with the exit status, a dropped connection; OpenSSH ssh, scp and sftp; 100 logins in a row; 80 file transfers without pauses; two servers at once; connections dropped during commands; the native clients; a client that stops reading. SOURCE AND LICENSE GNU GPL v3 or later (see COPYING). Source of this release: https://github.com/kaffeine1/bebbossh-aros/tree/v1.0.10-aros-i386-abiv0 Original BebboSSH: https://franke.ms/git/bebbo/bebbossh Bug reports: https://github.com/kaffeine1/bebbossh-aros/issues Port by Michele Dipace