Example: Connecting to remote postgresql ======================================== (1) On both the local & remote hosts: adduser -s /bin/false autossh ------------------------------------------------------------------- (2) On the local client create an SSH key with an empty password: su -s /bin/sh autossh echo 'y' |ssh-keygen -t ed25519 -N '' ------------------------------------------------------------------- (3) If using runit for service supervision < /etc/sv/autossh/run >: ------------------------------------------------------------------- #!/bin/sh sleep 2 exec 2>&1 su -s /bin/sh autossh -c \ 'export AUTOSSH_GATETIME=0 && nohup autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 1234:localhost:1234 -N -l autossh remote.ip.addr' ------------------------------------------------------------------------------------------------------------------------------------------------------------ ln -s /etc/sv/autossh /etc/service/autossh ------------------------------------------------------------------------------- ** if running autossh in a script without using runit add -f to ssh options **| ------------------------------------------------------------------------------- (4) Connect with: psql -h 127.0.0.1 -p 1234 -U username -d database ------------------------------------------------------------------------------- openssh-server: works out of the box | ed25519 keys possible dropbear: echo "/bin/false" >> /etc/shells | ecdsa keys possible tinyssh: port forwarding not yet implemented | ed25519 keys possible