Я добился большего успеха, используя Net :: SSH2 для SSH-соединений, но вы должны установить libssh2 самостоятельно.
Для веб-сервера лучшим вариантом будет простое приложение Plack, которое создает и поддерживаетSSH-соединение для пользователя.Когда они создают соединение, присвойте ему идентификатор (возможно, используя Data :: UUID) и используйте его в качестве URL (перенаправьте их на их URL).Затем просто примите команды как запросы данных POST к этому URL (используя text / plain, а не данные формы).Использование UUID для URL позволит одному пользователю легко иметь несколько соединений.UUID будет невозможно угадать, что затруднит перехват сеанса.У пользователя все еще должны быть учетные данные, чтобы установить соединение SSH (вы должны принять учетные данные и использовать их для создания объекта Net :: SSH2), поэтому риск безопасности должен быть очень небольшим.