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@<address of the AROS machine>
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 <michele.dipace@kaffeine.net>.
Support my work on the AROS port on Patreon:
https://www.patreon.com/c/kaffeine1
or with a one-time contribution on Ko-fi:
https://ko-fi.com/kaffeine1
Contributions are voluntary; no subscription is required to use
this software.
|