mirror of
https://github.com/ben-grande/qusal.git
synced 2025-01-29 16:43:22 -05:00
011a71a36d
Editorconfig can only act based on file extension and path, not attributes, it remains a mean only for multiple collaborators to use the same configuration on their editor. When it is too restrictive, such as not considering the file syntax, use a lint tool for the specific file type instead of trusting editorconfig. Changes were made to increase readability.
38 lines
1.2 KiB
Bash
Executable File
38 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
## SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
|
##
|
|
## SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
## How to use with SSH?
|
|
## On Dom0 Qrexec policy:
|
|
## qusal.ConnectTCP +domain.tld+22 client @default ask default_target=proxy
|
|
## On Dom0, enable the "qusal-proxy-client" service for the client qube:
|
|
## qvm-features client service.qusal-proxy-client 1
|
|
## On the SSH Proxy server (netvm of your liking), install this RPC service.
|
|
## qubesctl --skip-dom0 --targets=proxy state.apply sys-net.install-proxy
|
|
## On the client ssh configuration:
|
|
## Match Exec "test -f /var/run/qubes-service/qusal-proxy-client"
|
|
## ProxyCommand qrexec-client-vm @default qusal.ConnectTCP+%h+%p
|
|
|
|
set -eu
|
|
|
|
arg="${QREXEC_SERVICE_ARGUMENT}"
|
|
host="${arg%%+*}"
|
|
port="${arg##*+}"
|
|
|
|
if test -z "${port}" || test -z "${host}" || test "${port}" = "${host}"; then
|
|
echo "Missing either host, port or both" >&2
|
|
exit 1
|
|
fi
|
|
if test "${#host}" -gt 256; then
|
|
echo "Host size exceeds limit" >&2
|
|
exit 1
|
|
fi
|
|
if test "${#port}" -gt 5 || test "${port}" -gt 65535; then
|
|
echo "Invalid port number, it must be between 1 and 65535" >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec socat STDIO "TCP:${host}:${port}"
|