Per poter eseguire il tunneling SSH, è necessario disporre di un account sulla macchina "edge". È difficile consentire il tunneling senza fornire un accesso completo alla shell su quella macchina. Questa è una shell come utente generico. Teoricamente, i sistemi di tipo Unix applicano severe regole di sicurezza per quanto riguarda gli utenti locali, in modo che l'accesso alla shell a un utente non sia un grosso problema. In pratica, se i tuoi utenti sono potenziali attaccanti, questo aumenta la superficie di attacco: devi preoccuparti di ciò che tali attaccanti possono fare alla macchina edge da una shell in esecuzione su quella macchina, invece di accedere alla macchina "dalla rete".
Inoltre, se le persone della LAN interna possono connettersi a SSH alla macchina periferica, sono obbligati a provarla anche dall'esterno (cioè dalla loro macchina domestica). Puoi o non vuoi permetterlo.
Il tema comune qui è che SSH ha un tipo di modello di sicurezza tutto-o-niente: tu dai l'accesso, o no, ma non è facile imporre un accesso limitato ("puoi connettersi tramite SSH su questa macchina ma solo per eseguire questa o quella attività "). Per creare un accesso limitato, devi impostare la shell utente (a livello Unix) su un eseguibile specifico che fa il lavoro di filtraggio, come rssh , ma non trovo che questa sia una soluzione davvero efficace.