aboutsummaryrefslogtreecommitdiff
path: root/net/tmate-ssh-server/files
diff options
context:
space:
mode:
authorPaul Spooren <mail@aparcar.org>2021-03-28 23:06:35 -1000
committerPaul Spooren <mail@aparcar.org>2021-03-31 23:37:19 -1000
commitba82e9957dc236c0906b220e574ecf00c3d766de (patch)
tree97685b12513e562e25794a28582a665dfc319198 /net/tmate-ssh-server/files
parent07bc6996b65f4d8f52e13d15360f29d2389deede (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.config6
-rw-r--r--net/tmate-ssh-server/files/tmate-ssh-server.init65
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"
+}