When the client connects with a regular ssh client, we parse the proxy command given and call _run_proxy(channel)
, eventually creating a SSHSocketConnection
from make_ssh_server_connection
.
When running a proxy server, we should connect to another server and honour the session name argument which may have been provided as part of the ssh command (ie: _proxy :20
).
The difficulty is to keep this connection open (between the client and the xpra _proxy
subprocess we probably have to launch) and yet not return a real server connection from may_wrap_socket
/ handle_ssh_connection
.
I don't understand what I meant!
We already honour the display specified by the user.
:10
and :20
xpra proxy :100 --bind-tcp=0.0.0.0:10000,auth=allow --no-daemon -d auth,ssh
Then connecting with:
xpra attach ssh://localhost:10000/10
And the proxy honours the display we specify (:10
):
proxy_session: proxy-virtual-display=:100 (ignored), user specified display=:10, found displays=[':20', ':10']
And since we can't start new sessions via the paramiko ssh server (#2898), the session-name isn't something that is relevant to the proxy.
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2629