« Web-ssh » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
(Page créée avec « = Installer WebSSH avec reverse proxy Apache = Cette page décrit comment installer WebSSH dans un environnement isolé, le lancer en tant que service systemd, et le rendre accessible via Apache en HTTPS avec prise en charge des WebSocket. == 1. Installation dans un environnement virtuel == EN général je travaille avec un user dédié, ici ce serait webssh ou un user d'administration admin. Dans la suite on considère admin. Créer un environnement Python... »)
 
Ligne 33 : Ligne 33 :
== 3. Lancer WebSSH en tant que service ==
== 3. Lancer WebSSH en tant que service ==


Voir [[Créer un service systemd personnalisé]] pour créer un fichier <code>webssh.service</code> et activer le démarrage automatique.
Voir [[Deamon avec systemd|créer un service systemd personnalisé]] pour créer un fichier <code>webssh.service</code> et activer le démarrage automatique.


== 4. Configuration Apache en reverse proxy ==
== 4. Configuration Apache en reverse proxy ==
Ligne 50 : Ligne 50 :
# Support WebSocket
# Support WebSocket
ProxyPassMatch ^/webssh/ws$ ws://localhost:8888/ws
ProxyPassMatch ^/webssh/ws$ ws://localhost:8888/ws
# Support WebSocket via mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/webssh/ws$
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^/webssh/ws$ ws://localhost:8888/ws?%1 [P,L]
</syntaxhighlight>
</syntaxhighlight>



Version du 26 septembre 2025 à 23:43

Installer WebSSH avec reverse proxy Apache

Cette page décrit comment installer WebSSH dans un environnement isolé, le lancer en tant que service systemd, et le rendre accessible via Apache en HTTPS avec prise en charge des WebSocket.

1. Installation dans un environnement virtuel

EN général je travaille avec un user dédié, ici ce serait webssh ou un user d'administration admin. Dans la suite on considère admin.

Créer un environnement Python dédié :

python3 -m venv ~/sources/webssh-env
source ~/sources/webssh-env/bin/activate
pip install webssh

2. Script de lancement

Créer un script start-webssh.sh :

#!/bin/bash
source /home/admin/sources/webssh-env/bin/activate
exec wssh --address=127.0.0.1 --port=8888

Rendre le script exécutable :

chmod +x ~/sources/webssh-env/start-webssh.sh

3. Lancer WebSSH en tant que service

Voir créer un service systemd personnalisé pour créer un fichier webssh.service et activer le démarrage automatique.

4. Configuration Apache en reverse proxy

Dans la section HTTPS du VirtualHost :

Define WebSshURL "/webssh/"

<Location ${WebSshURL}>
    ProxyPreserveHost On
    ProxyPass http://localhost:8888/
    ProxyPassReverse http://localhost:8888/
</Location>

# Support WebSocket
ProxyPassMatch ^/webssh/ws$ ws://localhost:8888/ws

# Support WebSocket via mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/webssh/ws$
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^/webssh/ws$ ws://localhost:8888/ws?%1 [P,L]

Modules requis :

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel

Redémarrer Apache :

sudo systemctl restart apache2

5. Accès sécurisé

L’interface WebSSH est maintenant accessible via https://monserveur/webssh/. L’authentification SSH reste gérée par WebSSH. Une protection Apache (BasicAuth, IP, etc.) peut être ajoutée en amont si nécessaire.