diff options
author | Paul Spooren <mail@aparcar.org> | 2021-03-28 23:06:35 -1000 |
---|---|---|
committer | Paul Spooren <mail@aparcar.org> | 2021-03-31 23:37:19 -1000 |
commit | ba82e9957dc236c0906b220e574ecf00c3d766de (patch) | |
tree | 97685b12513e562e25794a28582a665dfc319198 /net/tmate-ssh-server/files | |
parent | 07bc6996b65f4d8f52e13d15360f29d2389deede (diff) |
tmate-ssh-server: add package
The `tmate` tool is a fork of `tmux` which allows remote access to a
device without setting up any port forwarding. This commits adds the
backend server which handles connections.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Diffstat (limited to 'net/tmate-ssh-server/files')
-rw-r--r-- | net/tmate-ssh-server/files/tmate-ssh-server.config | 6 | ||||
-rw-r--r-- | net/tmate-ssh-server/files/tmate-ssh-server.init | 65 |
2 files changed, 71 insertions, 0 deletions
diff --git a/net/tmate-ssh-server/files/tmate-ssh-server.config b/net/tmate-ssh-server/files/tmate-ssh-server.config new file mode 100644 index 000000000..bada5b173 --- /dev/null +++ b/net/tmate-ssh-server/files/tmate-ssh-server.config @@ -0,0 +1,6 @@ +config tmate-ssh-server 'main' + option listen_port 2222 + option keys_dir '/etc/tmate-ssh-server/keys/' + # option ip '0.0.0.0' + # option hostname 'OpenWrt' + # option ssh_port_advertized 2222 diff --git a/net/tmate-ssh-server/files/tmate-ssh-server.init b/net/tmate-ssh-server/files/tmate-ssh-server.init new file mode 100644 index 000000000..df31912f1 --- /dev/null +++ b/net/tmate-ssh-server/files/tmate-ssh-server.init @@ -0,0 +1,65 @@ +#!/bin/sh /etc/rc.common + +START=90 +STOP=10 + +USE_PROCD=1 +PROG=/usr/bin/tmate-ssh-server + +generate_keys() { + mkdir -p "$1" + echo "Generating fresh keys" + ssh-keygen -t "rsa" -f "$1/ssh_host_rsa_key" -N '' > /dev/null + ssh-keygen -t "ed25519" -f "$1/ssh_host_ed25519_key" -N '' > /dev/null +} + +start_service() { + local ip hostname keys_dir listen_port ssh_port_advertized + config_load "tmate-http-server" + + procd_open_instance + procd_set_param command $PROG + + config_get ip main ip + if [ ! -z "$ip" ]; then + procd_append_param command -b "$ip" + fi + + config_get hostname main hostname "$HOSTNAME" + procd_append_param command -h "$hostname" + + config_get keys_dir main keys_dir "/etc/tmate-ssh-server/keys/" + if [ ! -f "$keys_dir/ssh_host_rsa_key" ] && \ + [ ! -f "ssh_host_ed25519_key" ]; then + generate_keys "$keys_dir" + fi + + procd_append_param command -k "$keys_dir" + + config_get listen_port main listen_port "2222" + procd_append_param command -p "$listen_port" + + config_get ssh_port_advertized main ssh_port_advertized "$listen_port" + procd_append_param command -q "$ssh_port_advertized" + + echo "You may use the following settings this in your .tmate.conf:" + echo "" + echo "set -g tmate-server-host $hostname" + echo "set -g tmate-server-port $ssh_port_advertized" + printf "set -g tmate-server-rsa-fingerprint " + ssh-keygen -l -E SHA256 -f "$keys_dir/ssh_host_rsa_key.pub" | \ + cut -d ' ' -f 2 + printf "set -g tmate-server-ed25519-fingerprint " + ssh-keygen -l -E SHA256 -f "$keys_dir/ssh_host_ed25519_key.pub" | \ + cut -d ' ' -f 2 + + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "tmate-ssh-server" +} |