diff --git a/pkg/server/ui/about.templ b/pkg/server/ui/about.templ
index 37106e0..d0f5169 100644
--- a/pkg/server/ui/about.templ
+++ b/pkg/server/ui/about.templ
@@ -39,20 +39,22 @@ templ About() {
client and agent is established as follows:
- (1): the agent, started by the continuous integration job, connects to converge server through a websocket, this establishes a connection that
- is similar to a TCP connection to converge server. In connecting, the agent specifies a
- rendez-vous id. After connecting, the agenta and ocnverge server using multiplexing of connections
- over a single connection, allowing the agent to run an embedded SSH server and listen for incoming
+ is similar to a TCP connection. In connecting, the agent specifies a
+ rendez-vous id. After connecting, the agenta and Converge server perform multiplexing of connections
+ over this single connection. This allows the agent to run an embedded SSH server and listen for incoming
connections, just like normally is done with a TCP listener.
- (2): the client connects to converge server through SSH and also specifies the same rendez-vous id.
- The connection from client to converge server is done through a helper program
wsproxy
- that is used as a proxy command for SSH allowing SSH to connect to the websocket. Using wsproxy, the
- rendez-vous id is passed to the server.
+ Since SSH by itself cannot connect over websockets, a helper program wsproxy
is used as
+ a proxy command for SSH. Using wsproxy
, the rendez-vous id is passed to the server as part
+ of the websocket URL.
- (3): converge server connects the two connections after matching them based on the rendez-vous id.
- The role of converge server is imply in forwarding data.
+ Now when a connection is setup from a client, it can connect to the appropriate agent, identifie dby
+ rendez-vous id and setup a bi-directional connection. After this, Converge simply copies data between
+ client and agent.
- (4): the agent runs an embedded SSH server and incoming connections to the agent are handed over to
that server. That server in turn spawns a shell (bash, cmd.exe, powershell.exe) and connects it to the
- SSH session. At that momenmt an end-to-end SSH session is established and the user can perform interactive
- commands.
+ remote SSH session. At that momenmt an end-to-end SSH session is established and the user can perform interactive
+ commands. Here any shell program can be used such as bash, command prompt, or powershell.
There are a few special situations:
@@ -128,14 +130,14 @@ templ About() {
remote shell usage
- The agent supports a --shells command-line option by which a comma-separated
+ The agent supports a --shells
command-line option by which a comma-separated
list of shells can be prepended to the default search path for shells, e.g.
--shells zsh,csh,sh
(linux) or cmd,powershell
for
windows.
- The agent sets an agentdir environment variable that points to
+ The agent sets an agentdir
environment variable that points to
the directory where the agent is running.
@@ -171,7 +173,7 @@ templ About() {
Converve server addresses these issues in the following ways:
- Use the websocket protocol both for agents and for clients, providing a fixed port and
- a supported protocol for kubernetes deploymment. Websockets are also supported by
+ a supported protocol for kubernetes deployment. Websockets are also supported by
kubernetes ingress controllers so this makes it easy to deploy on kubernetes.
To make this work with SSH which does not natively support websockets, a proxycommand
wsproxy
is provided that allows SSH to connect using websockets.