In a continous integration job, download the agent, chmod it and run it.
curl https://HOSTPORT/docs/agent > agent ./agent wss://HOST:PORT/agent/ID chmod 755 agent
Above, HOST:PORT is the hostname:port of the converge server and ID is a unique id for the job. This should not conflict with other ids. This connects the agent to the converge server. Clients can now connect to converge to establish a connection to the CI job through converge.
curl https://HOST:PORT/docs/wsproxy > wsproxy chmod 755 wsproxy
This is a command that can be used as a proxy command for SSH which performs the connection to the remote server.
Next step is to run a local SSH of SFTP client:
ssh -oProxyCommand="wsproxy https://HOST:PORT/client/ID" -p 10000 abc@localhost sftp -oProxyCommand="wsproxy https://HOST:PORT/client/ID" -oPort 10000 abc@localhost
abc
is a fixed user defined by converge. It has a very exciting password.
Local clients can connect using regular ssh and sftp commands through a tunnel that translates a local TCP port to a websocket connection in converge. First step is to download the tcptows program (see below):
# for HTTP hosted server curl http://HOST:PORT/docs/tcptows > tcptows chmod 755 tcptows ./tcptows 10000 ws://HOST:PORT/client/ID # for HTTPS hosted server curl https://HOST:PORT/docs/tcptows > tcptows chmod 755 tcptows ./tcptows 10000 wss://HOST:PORT/client/ID
This runs a local client that allows SSH to port 10000 and connects to converge using a websocket connection.
Next step is to run a local SSH of SFTP client:
ssh -p 10000 abc@localhost sftp -oPort 10000 abc@localhost
abc
is a fixed user defined by converge. It has a very exciting password.